【轉】Git使用教程

来源:https://www.cnblogs.com/zdd-java/archive/2019/03/27/10611860.html
-Advertisement-
Play Games

Git使用教程 一:Git是什麼? Git是目前世界上最先進的分散式版本控制系統。 二:SVN與Git的最主要的區別? SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從中央伺服器哪裡得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到中央 ...


Git使用教程

 一:Git是什麼?

       Git是目前世界上最先進的分散式版本控制系統。

二:SVN與Git的最主要的區別?

      SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從中央伺服器哪裡得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到中央伺服器。集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,帶寬夠大,速度夠快,如果在互聯網下,如果網速慢的話,就納悶了。

      Git是分散式版本控制系統,那麼它就沒有中央伺服器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。既然每個人的電腦都有一個完整的版本庫,那多個人如何協作呢?比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

三:在windows上如何安裝Git?

      msysgit是 windows版的Git,如下:

     

 需要從網上下載一個,然後進行預設安裝即可。安裝完成後,在開始菜單裡面找到 "Git --> Git Bash",如下:

  

會彈出一個類似的命令視窗的東西,就說明Git安裝成功。如下:

 

安裝完成後,還需要最後一步設置,在命令行輸入如下:

 

  因為Git是分散式版本控制系統,所以需要填寫用戶名和郵箱作為一個標識。

   註意:git config  --global 參數,有了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然你也可以對某個倉庫指定的不同的用戶名和郵箱。

四:如何操作?

     一:創建版本庫。

     什麼是版本庫?版本庫又名倉庫,英文名repository,你可以簡單的理解一個目錄,這個目錄裡面的所有文件都可以被Git管理起來,每個文件的修改,刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻還可以將文件”還原”。

    所以創建一個版本庫也非常簡單,如下我是D盤 –> www下 目錄下新建一個testgit版本庫。

   

pwd 命令是用於顯示當前的目錄。

      1. 通過命令 git init 把這個目錄變成git可以管理的倉庫,如下:

      

     這時候你當前testgit目錄下會多了一個.git的目錄,這個目錄是Git來跟蹤管理版本的,沒事千萬不要手動亂改這個目錄裡面的文件,否則,會把git倉庫給破壞了。如下:

    

      2. 把文件添加到版本庫中。

          首先要明確下,所有的版本控制系統,只能跟蹤文本文件的改動,比如txt文件,網頁,所有程式的代碼等,Git也不列外,版本控制系統可以告訴你每次的改動,但是圖片,視頻這些二進位文件,雖能也能由版本控制系統管理,但沒法跟蹤文件的變化,只能把二進位文件每次改動串起來,也就是知道圖片從1kb變成2kb,但是到底改了啥,版本控制也不知道。

    下麵先看下demo如下演示:

     我在版本庫testgit目錄下新建一個記事本文件 readme.txt 內容如下:11111111

     第一步:使用命令 git add readme.txt添加到暫存區裡面去。如下:

    

   如果和上面一樣,沒有任何提示,說明已經添加成功了。

   第二步:用命令 git commit告訴Git,把文件提交到倉庫。

   

  現在我們已經提交了一個readme.txt文件了,我們下麵可以通過命令git status來查看是否還有文件未提交,如下:

  

 說明沒有任何文件未提交,但是我現在繼續來改下readme.txt內容,比如我在下麵添加一行2222222222內容,繼續使用git status來查看下結果,如下:

 

上面的命令告訴我們 readme.txt文件已被修改,但是未被提交的修改。

接下來我想看下readme.txt文件到底改了什麼內容,如何查看呢?可以使用如下命令:

git diff readme.txt 如下:

 

如上可以看到,readme.txt文件內容從一行11111111改成 二行 添加了一行22222222內容。

知道了對readme.txt文件做了什麼修改後,我們可以放心的提交到倉庫了,提交修改和提交文件是一樣的2步(第一步是git add  第二步是:git commit)。

如下:

 

二:版本回退:

     如上,我們已經學會了修改文件,現在我繼續對readme.txt文件進行修改,再增加一行

內容為33333333333333.繼續執行命令如下:

   

現在我已經對readme.txt文件做了三次修改了,那麼我現在想查看下歷史記錄,如何查呢?我們現在可以使用命令 git log 演示如下所示:

  

    git log命令顯示從最近到最遠的顯示日誌,我們可以看到最近三次提交,最近的一次是,增加內容為333333.上一次是添加內容222222,第一次預設是 111111.如果嫌上面顯示的信息太多的話,我們可以使用命令 git log –pretty=oneline 演示如下:

  

    現在我想使用版本回退操作,我想把當前的版本回退到上一個版本,要使用什麼命令呢?可以使用如下2種命令,第一種是:git reset  --hard HEAD^ 那麼如果要回退到上上個版本只需把HEAD^ 改成 HEAD^^ 以此類推。那如果要回退到前100個版本的話,使用上面的方法肯定不方便,我們可以使用下麵的簡便命令操作:git reset  --hard HEAD~100 即可。未回退之前的readme.txt內容如下:

  

如果想回退到上一個版本的命令如下操作:

再來查看下 readme.txt內容如下:通過命令cat readme.txt查看

可以看到,內容已經回退到上一個版本了。我們可以繼續使用git log 來查看下歷史記錄信息,如下:

我們看到 增加333333 內容我們沒有看到了,但是現在我想回退到最新的版本,如:有333333的內容要如何恢復呢?我們可以通過版本號回退,使用命令方法如下:

git reset  --hard 版本號 ,但是現在的問題假如我已經關掉過一次命令行或者333內容的版本號我並不知道呢?要如何知道增加3333內容的版本號呢?可以通過如下命令即可獲取到版本號:git reflog  演示如下:

通過上面的顯示我們可以知道,增加內容3333的版本號是 6fcfc89.我們現在可以命令

git reset  --hard 6fcfc89來恢復了。演示如下:

可以看到 目前已經是最新的版本了。

三:理解工作區與暫存區的區別?

     工作區:就是你在電腦上看到的目錄,比如目錄下testgit里的文件(.git隱藏目錄版本庫除外)。或者以後需要再新建的目錄文件等等都屬於工作區範疇。

      版本庫(Repository)工作區有一個隱藏目錄.git,這個不屬於工作區,這是版本庫。其中版本庫裡面存了很多東西,其中最重要的就是stage(暫存區),還有Git為我們自動創建了第一個分支master,以及指向master的一個指針HEAD。

我們前面說過使用Git提交文件到版本庫有兩步:

  第一步:是使用 git add 把文件添加進去,實際上就是把文件添加到暫存區。

  第二步:使用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支上。

我們繼續使用demo來演示下:

我們在readme.txt再添加一行內容為4444444,接著在目錄下新建一個文件為test.txt 內容為test,我們先用命令 git status來查看下狀態,如下:

現在我們先使用git add 命令把2個文件都添加到暫存區中,再使用git status來查看下狀態,如下:

接著我們可以使用git commit一次性提交到分支上,如下:

四:Git撤銷修改和刪除文件操作。

一:撤銷修改:

    比如我現在在readme.txt文件裡面增加一行 內容為555555555555,我們先通過命令查看如下:

在我未提交之前,我發現添加5555555555555內容有誤,所以我得馬上恢復以前的版本,現在我可以有如下幾種方法可以做修改:

第一:如果我知道要刪掉那些內容的話,直接手動更改去掉那些需要的文件,然後add添加到暫存區,最後commit掉。

第二:我可以按以前的方法直接恢復到上一個版本。使用 git reset  --hard HEAD^

但是現在我不想使用上面的2種方法,我想直接想使用撤銷命令該如何操作呢?首先在做撤銷之前,我們可以先用 git status 查看下當前的狀態。如下所示:

可以發現,Git會告訴你,git checkout  -- file 可以丟棄工作區的修改,如下命令:

git checkout  --  readme.txt,如下所示:

命令 git checkout --readme.txt 意思就是,把readme.txt文件在工作區做的修改全部撤銷,這裡有2種情況,如下:

  1. readme.txt自動修改後,還沒有放到暫存區,使用 撤銷修改就回到和版本庫一模一樣的狀態。
  2. 另外一種是readme.txt已經放入暫存區了,接著又作了修改,撤銷修改就回到添加暫存區後的狀態。

對於第二種情況,我想我們繼續做demo來看下,假如現在我對readme.txt添加一行 內容為6666666666666,我git add 增加到暫存區後,接著添加內容7777777,我想通過撤銷命令讓其回到暫存區後的狀態。如下所示:

  

註意:命令git checkout -- readme.txt 中的 -- 很重要,如果沒有 -- 的話,那麼命令變成創建分支了。

二:刪除文件。

     假如我現在版本庫testgit目錄添加一個文件b.txt,然後提交。如下:

  

如上:一般情況下,可以直接在文件目錄中把文件刪了,或者使用如上rm命令:rm b.txt ,如果我想徹底從版本庫中刪掉了此文件的話,可以再執行commit命令 提交掉,現在目錄是這樣的,

 

只要沒有commit之前,如果我想在版本庫中恢復此文件如何操作呢?

可以使用如下命令 git checkout  -- b.txt,如下所示:

再來看看我們testgit目錄,添加了3個文件了。如下所示:

五:遠程倉庫。

     在瞭解之前,先註冊github賬號,由於你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的,所以需要一點設置:

     第一步:創建SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果有的話,直接跳過此如下命令,如果沒有的話,打開命令行,輸入如下命令:

ssh-keygen  -t rsa –C “[email protected]”, 由於我本地此前運行過一次,所以本地有,如下所示:

 

id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

第二步:登錄github,打開” settings”中的SSH Keys頁面,然後點擊“Add SSH Key”,填上任意title,在Key文本框里黏貼id_rsa.pub文件的內容。

點擊 Add Key,你就應該可以看到已經添加的key。

  1. 如何添加遠程庫?

         現在的情景是:我們已經在本地創建了一個Git倉庫後,又想在github創建一個Git倉庫,並且希望這兩個倉庫進行遠程同步,這樣github的倉庫可以作為備份,又可以其他人通過該倉庫來協作。

   首先,登錄github上,然後在右上角找到“create a new repo”創建一個新的倉庫。如下:

在Repository name填入testgit,其他保持預設設置,點擊“Create repository”按鈕,就成功地創建了一個新的Git倉庫:

    目前,在GitHub上的這個testgit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然後,把本地倉庫的內容推送到GitHub倉庫。

現在,我們根據GitHub的提示,在本地的testgit倉庫下運行命令:

git remote add origin https://github.com/tugenhua0707/testgit.git

所有的如下:

  

把本地庫的內容推送到遠程,使用 git push命令,實際上是把當前分支master推送到遠程。

由於遠程庫是空的,我們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。推送成功後,可以立刻在github頁面中看到遠程庫的內容已經和本地一模一樣了,上面的要輸入github的用戶名和密碼如下所示:

從現在起,只要本地作了提交,就可以通過如下命令:

git push origin master

把本地master分支的最新修改推送到github上了,現在你就擁有了真正的分散式版本庫了。

2. 如何從遠程庫克隆?

  上面我們瞭解了先有本地庫,後有遠程庫時候,如何關聯遠程庫。

  現在我們想,假如遠程庫有新的內容了,我想克隆到本地來 如何克隆呢?

  首先,登錄github,創建一個新的倉庫,名字叫testgit2.如下:

如下,我們看到:

現在,遠程庫已經準備好了,下一步是使用命令git clone克隆一個本地庫了。如下所示:

接著在我本地目錄下 生成testgit2目錄了,如下所示:

六:創建與合併分支。

    在  版本回填退里,你已經知道,每次提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git里,這個分支叫主分支,即master分支。HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支。

首先,我們來創建dev分支,然後切換到dev分支上。如下操作:

 

git checkout 命令加上 –b參數表示創建並切換,相當於如下2條命令

git branch dev

git checkout dev

git branch查看分支,會列出所有的分支,當前分支前面會添加一個星號。然後我們在dev分支上繼續做demo,比如我們現在在readme.txt再增加一行 7777777777777

首先我們先來查看下readme.txt內容,接著添加內容77777777,如下:

現在dev分支工作已完成,現在我們切換到主分支master上,繼續查看readme.txt內容如下:

現在我們可以把dev分支上的內容合併到分支master上了,可以在master分支上,使用如下命令 git merge dev 如下所示:

git merge命令用於合併指定分支到當前分支上,合併後,再查看readme.txt內容,可以看到,和dev分支最新提交的是完全一樣的。

註意到上面的Fast-forward信息,Git告訴我們,這次合併是“快進模式”,也就是直接把master指向dev的當前提交,所以合併速度非常快。

合併完成後,我們可以接著刪除dev分支了,操作如下:

總結創建與合併分支命令如下:

   查看分支:git branch

   創建分支:git branch name

   切換分支:git checkout name

創建+切換分支:git checkout –b name

合併某分支到當前分支:git merge name

刪除分支:git branch –d name

  1. 如何解決衝突?

下麵我們還是一步一步來,先新建一個新分支,比如名字叫fenzhi1,在readme.txt添加一行內容8888888,然後提交,如下所示:

同樣,我們現在切換到master分支上來,也在最後一行添加內容,內容為99999999,如下所示:

現在我們需要在master分支上來合併fenzhi1,如下操作:

Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,其中<<<HEAD是指主分支修改的內容,>>>>>fenzhi1 是指fenzhi1上修改的內容,我們可以修改下如下後保存:

如果我想查看分支合併的情況的話,需要使用命令 git log.命令行演示如下:

    3.分支管理策略。

      通常合併分支時,git一般使用”Fast forward”模式,在這種模式下,刪除分支後,會丟掉分支信息,現在我們來使用帶參數 –no-ff來禁用”Fast forward”模式。首先我們來做demo演示下:

  1. 創建一個dev分支。
  2. 修改readme.txt內容。
  3. 添加到暫存區。
  4. 切換回主分支(master)。
  5. 合併dev分支,使用命令 git merge –no-ff  -m “註釋” dev
  6. 查看歷史記錄

截圖如下:

 

分支策略:首先master主分支應該是非常穩定的,也就是用來發佈新版本,一般情況下不允許在上面幹活,幹活一般情況下在新建的dev分支上幹活,幹完後,比如上要發佈,或者說dev分支代碼穩定後可以合併到主分支master上來。

七:bug分支:

     在開發中,會經常碰到bug問題,那麼有了bug就需要修複,在Git中,分支是很強大的,每個bug都可以通過一個臨時分支來修複,修複完成後,合併分支,然後將臨時的分支刪除掉。

比如我在開發中接到一個404 bug時候,我們可以創建一個404分支來修複它,但是,當前的dev分支上的工作還沒有提交。比如如下:

 

   並不是我不想提交,而是工作進行到一半時候,我們還無法提交,比如我這個分支bug要2天完成,但是我issue-404 bug需要5個小時內完成。怎麼辦呢?還好,Git還提供了一個stash功能,可以把當前工作現場 ”隱藏起來”,等以後恢復現場後繼續工作。如下:

  

   所以現在我可以通過創建issue-404分支來修複bug了。

首先我們要確定在那個分支上修複bug,比如我現在是在主分支master上來修複的,現在我要在master分支上創建一個臨時分支,演示如下:

 

修複完成後,切換到master分支上,並完成合併,最後刪除issue-404分支。演示如下:

現在,我們回到dev分支上幹活了。

工作區是乾凈的,那麼我們工作現場去哪裡呢?我們可以使用命令 git stash list來查看下。如下:

工作現場還在,Git把stash內容存在某個地方了,但是需要恢復一下,可以使用如下2個方法:

  1. git stash apply恢復,恢復後,stash內容並不刪除,你需要使用命令git stash drop來刪除。
  2. 另一種方式是使用git stash pop,恢復的同時把stash內容也刪除了。

         演示如下

八:多人協作。

當你從遠程庫克隆時候,實際上Git自動把本地的master分支和遠程的master分支對應起來了,並且遠程庫的預設名稱是origin。

  1. 要查看遠程庫的信息 使用 git remote
  2. 要查看遠程庫的詳細信息 使用 git remote –v

如下演示:

 

一:推送分支:

      推送分支就是把該分支上所有本地提交到遠程庫中,推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:

      使用命令 git push origin master

比如我現在的github上的readme.txt代碼如下:

本地的readme.txt代碼如下:

 

現在我想把本地更新的readme.txt代碼推送到遠程庫中,使用命令如下:

我們可以看到如上,推送成功,我們可以繼續來截圖github上的readme.txt內容 如下:

可以看到 推送成功了,如果我們現在要推送到其他分支,比如dev分支上,我們還是那個命令 git push origin dev

那麼一般情況下,那些分支要推送呢?

  1. master分支是主分支,因此要時刻與遠程同步。
  2. 一些修複bug分支不需要推送到遠程去,可以先合併到主分支上,然後把主分支master推送到遠程去。

二:抓取分支:

多人協作時,大家都會往master分支上推送各自的修改。現在我們可以模擬另外一個同事,可以在另一臺電腦上(註意要把SSH key添加到github上)或者同一臺電腦上另外一個目錄克隆,新建一個目錄名字叫testgit2

但是我首先要把dev分支也要推送到遠程去,如下

接著進入testgit2目錄,進行克隆遠程的庫到本地來,如下:

 

現在目錄下生成有如下所示:

現在我們的小伙伴要在dev分支上做開發,就必須把遠程的origin的dev分支到本地來,於是可以使用命令創建本地dev分支:git checkout  –b dev origin/dev

現在小伙伴們就可以在dev分支上做開發了,開發完成後把dev分支推送到遠程庫時。

如下:

小伙伴們已經向origin/dev分支上推送了提交,而我在我的目錄文件下也對同樣的文件同個地方作了修改,也試圖推送到遠程庫時,如下:

由上面可知:推送失敗,因為我的小伙伴最新提交的和我試圖推送的有衝突,解決的辦法也很簡單,上面已經提示我們,先用git pull把最新的提交從origin/dev抓下來,然後在本地合併,解決衝突,再推送。

git pull也失敗了,原因是沒有指定本地dev分支與遠程origin/dev分支的鏈接,根據提示,設置dev和origin/dev的鏈接:如下:

這回git pull成功,但是合併有衝突,需要手動解決,解決的方法和分支管理中的 解決衝突完全一樣。解決後,提交,再push:

我們可以先來看看readme.txt內容了。

現在手動已經解決完了,我接在需要再提交,再push到遠程庫裡面去。如下所示:

因此:多人協作工作模式一般是這樣的:

  1. 首先,可以試圖用git push origin branch-name推送自己的修改.
  2. 如果推送失敗,則因為遠程分支比你的本地更新早,需要先用git pull試圖合併。
  3. 如果合併有衝突,則需要解決衝突,併在本地提交。再用git push origin branch-name推送。

Git基本常用命令如下:

   mkdir:         XX (創建一個空目錄 XX指目錄名)

   pwd:          顯示當前目錄的路徑。

   git init          把當前的目錄變成可以管理的git倉庫,生成隱藏.git文件。

   git add XX       把xx文件添加到暫存區去。

   git commit –m “XX”  提交文件 –m 後面的是註釋。

   git status        查看倉庫狀態

   git diff  XX      查看XX文件修改了那些內容

   git log          查看歷史記錄

   git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一個版本

                        (如果想回退到100個版本,使用git reset –hard HEAD~100 )

   cat XX         查看XX文件內容

   git reflog       查看歷史記錄的版本號id

   git checkout -- XX  把XX文件在工作區的修改全部撤銷。

   git rm XX          刪除XX文件

   git remote add origin https://github.com/tugenhua0707/testgit 關聯一個遠程庫

   git push –u(第一次要用-u 以後不需要) origin master 把當前master分支推送到遠程庫

   git clone https://github.com/tugenhua0707/testgit  從遠程庫中克隆

   git checkout –b dev  創建dev分支 並切換到dev分支上

   git branch  查看當前所有的分支

   git checkout master 切換回master分支

   git merge dev    在當前的分支上合併dev分支

   git branch –d dev 刪除dev分支

   git branch name  創建分支

   git stash 把當前的工作隱藏起來 等以後恢復現場後繼續工作

   git stash list 查看所有被隱藏的文件列表

   git stash apply 恢復被隱藏的文件,但是內容不刪除

   git stash drop 刪除文件

   git stash pop 恢覆文件的同時 也刪除文件

   git remote 查看遠程庫的信息

   git remote –v 查看遠程庫的詳細信息

   git push origin master  Git會把master分支推送到遠程庫對應的遠程分支上


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 官網:https://www.easyx.cn/ 線上幫助文檔:https://docs.easyx.cn/ 目標:生成一個邊框為黃色,填充為藍色的圓 遇到的問題:使用以下代碼,只能生成邊框為黃色的圓,藍色沒有填充上。調整setfillcolor(BLUE);的位置,放在circle函數後面填充,發 ...
  • 1 Spring事務 1.1 Spring事務是什麼(百度) 事務是對一系列的資料庫操作(比如插入多條數據)進行統一的提交或是回滾操作,如果插入成功,那麼一起成功,如果中間一條出現異常,那麼回滾之前的所有操作。 Spring事務管理機制使用的是TransactionManager進行管理。回滾註解@ ...
  • 本節內容為學習譚浩強老師編寫的《C++面向對象程式設計》的第2章 類和對象的特性 後的個人總結。只完成1/5,先挖個坑督促自己及時更新過。包括 2.1 面向對象程式設計方法概述,2.2 類的聲明和對象的定義,2.3 類的成員函數,2.4 對象成員的引用,2.5 類和對象的簡單應用舉例,2.6 類的封... ...
  • golang允許使用匿名結構體,形如 一般在使用的時候可以直接這樣初始化 或者 但今天遇到一種情況 匿名結構體的成員上有tag聲明,形如 這時使用第一種初始化方式,始終報錯,說類型不匹配,查了很久,偶然情況下去掉了結構體定義中的tag聲明,居然不報錯了,這時反應過來,使用第一種初始化方式,必須保證跟 ...
  • 問題:大家在學習Java讀取數據的時候一般都是使用Scanner方法讀取數據,但是其中有一個小問題大家可能不知道, 就是我們在使用scanner的時候如果你先讀取一個數字,在讀取一行帶有空格的字元串,勢必會出錯或者字元串讀不到, 那麼這篇文章就是解決此類問題的 ,希望對大家有所幫助。 錯誤代碼: 分 ...
  • 給定兩個以字元串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字元串形式。 示例 1:輸入: num1 = "2", num2 = "3"輸出: "6"示例 2:輸入: num1 = "123", num2 = "456"輸出: "56088"說 ...
  • 未完待續,預計3.31完成 摘要:java引入註解後,編碼節省了很多需要寫代碼的時間,而且精簡了代碼,本文主要羅列項目中常用註解。 1 事務相關 @Transactional 事務回滾,作用於資料庫操作時,當操作數據失敗,該操作可以還原 ...
  • 指針、引用和取值 什麼是指針?什麼是記憶體地址?什麼叫做指針的取值?指針是一個存儲電腦記憶體地址的變數。在這份教程里“引用”表示電腦記憶體地址。從指針指向的記憶體讀取數據稱作指針的取值。指針可以指向某些具體類型的變數地址,例如int、long和double。指針也可以是void類型、NULL指針和未初始 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...