溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Git分支基本操作方法有哪些

發(fā)布時間:2022-10-26 09:20:21 來源:億速云 閱讀:130 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Git分支基本操作方法有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Git分支基本操作方法有哪些”吧!

    1、創(chuàng)建分支

    (1)創(chuàng)建分支

    Git 是怎么創(chuàng)建新分支的呢?

    很簡單,就是要創(chuàng)建一個可以移動的新的指針。

    比如,創(chuàng)建一個testing分支, 你需要使用命令:git branch testing。

    示例:

    # 1.查看本地版本庫歷史提交
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git log --oneline
    b97ccfd (HEAD -> master) 第3次提交,新增內(nèi)容:branch test v3
    f72a9fe 第2次提交,新增內(nèi)容:branch test v2
    fa2439a 第1次提交,新增readme.txt文件
    
    # 2.新建分支testing
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git branch testing
    
    # 3.再次查看本地版本庫歷史提交
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git log --oneline
    b97ccfd (HEAD -> master, testing) 第3次提交,新增內(nèi)容:branch test v3
    f72a9fe 第2次提交,新增內(nèi)容:branch test v2
    fa2439a 第1次提交,新增readme.txt文件

    可以看到(HEAD -> master, testing),說明本地版本庫中,已經(jīng)多了一個testing分支。

    (2)圖示理解

    如上操作,會在當(dāng)前所在的提交對象上創(chuàng)建一個新的指針。

    如下圖:

    Git分支基本操作方法有哪些

    那么Git 又是怎么知道當(dāng)前在哪一個分支上呢? 也很簡單,它有一個名為 HEAD 的特殊指針,HEAD指向當(dāng)前所在的本地分支上。

    在本例中,是仍然在 master 分支上。 因為 git branch 命令僅僅 創(chuàng)建 一個新分支,并不會自動切換到新分支中去。

    因為上面日志信息:(HEAD -> master, testing),也說明HEAD指針指向的是master分支。

    如下圖所示:

    Git分支基本操作方法有哪些

    如圖所示,當(dāng)前 master 和 testing 分支均指向校驗和以 b97ccfd 開頭的提交對象。

    2、查看分支列表

    執(zhí)行命令:git branch。不用加任何參數(shù)。

    如下圖:

    Git分支基本操作方法有哪些

    該命令會列出當(dāng)前本地版本庫中存在的所有分支,且當(dāng)前正在工作的分支前會顯示*。

    和命令行路徑后面( )中的內(nèi)容相對應(yīng)。

    3、分支切換

    要切換到一個已存在的分支,你需要使用 git checkout branchname 命令。

    我們現(xiàn)在切換到新創(chuàng)建的 testing 分支去:

    # 1.切換到testing分支上
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git checkout testing
    Switched to branch 'testing' # 提示:切換到分支“testing”
    
    # 2.查看當(dāng)前正在工作的分支。
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing) # 這里
    $ git branch
      master
    * testing   # 這里

    現(xiàn)在 HEAD 就指向 testing 分支了。(即:HEAD 會指向當(dāng)前所在的分支)

    Git分支基本操作方法有哪些

    提示:

    在創(chuàng)建分支的時候,添加-b選項,可以直接切換到新創(chuàng)建的分支上。

    例如:git checkout -b testing

    該命令等價于如下兩條命令:

    • git branch testing:創(chuàng)建分支。

    • git checkout testing:切換分支。

    4、查看所有分支的最后一個提交

    使用git branch -v命令可以查看,所有分支的最后一次提交。

    我們在testing 分支修改readme.txt文件,再進(jìn)行一次提交。

    # 1.查看當(dāng)前工作的分支
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)
    $ git branch
      master
    * testing
    
    # 2.修改文件,提交新版本
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)
    $ echo "branch test v4" >> readme.txt
    
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)
    $ git commit -a -m '第4次提交,新增內(nèi)容:branch test v4'
    warning: LF will be replaced by CRLF in readme.txt.
    The file will have its original line endings in your working directory
    [testing 25f0827] 第4次提交,新增內(nèi)容:branch test v4
     1 file changed, 1 insertion(+)
    
    # 3.查看所有分支的最后一次提價
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)
    $ git branch -v
      master  b97ccfd 第3次提交,新增內(nèi)容:branch test v3
    * testing 25f0827 第4次提交,新增內(nèi)容:branch test v4
    
    # 4.查看版本庫歷史提交記錄
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)
    $ git log --graph --oneline
    * 25f0827 (HEAD -> testing) 第4次提交,新增內(nèi)容:branch test v4
    * b97ccfd (master) 第3次提交,新增內(nèi)容:branch test v3
    * f72a9fe 第2次提交,新增內(nèi)容:branch test v2
    * fa2439a 第1次提交,新增readme.txt文件

    通過上面的日志信息,此時 HEAD 指針的狀態(tài)如下圖:

    Git分支基本操作方法有哪些

    可以看到 HEAD 隨著在testing 分支上的提交操作,自動向前移動。

    5、刪除分支

    使用命令:git branch -d branchname。

    但是要注意的是:若要刪除某分支,必須要保證當(dāng)前工作的分支,不能是該分支。

    這個時候我們需要先切換回master分支。

    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)
    $ git checkout master
    Switched to branch 'master'
    
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git branch
    * master
      testing

    此時 HEAD 指針的狀態(tài)如下圖:

    Git分支基本操作方法有哪些

    說明:git checkout master這條命令做了兩件事。

    是使 HEAD 指回 master 分支。

    是將工作目錄中文件,恢復(fù)成 master 分支所指向提交的快照內(nèi)容。

    在切換分支時,一定要注意你工作目錄里的文件會被改變,你的工作目錄會恢復(fù)到該分支最后一次提交時的樣子。如果 Git 不能干凈利落地完成這個任務(wù),它將禁止切換分支。(下面分支實戰(zhàn)中有詳細(xì)說明)

    也就是說,你現(xiàn)在做修改的話,項目將始于 master 分支版本。 本質(zhì)上來講,這就是忽略 testing分支所做的修改,以便于向另一個方向進(jìn)行開發(fā)。

    繼續(xù)我們開始刪除 testing 分支。

    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git branch -d testing
    error: The branch 'testing' is not fully merged.
    If you are sure you want to delete it, run 'git branch -D testing'.

    提示你:分支“testing”沒有合并到主分支,如果確定要刪除它,請運行git branch -D testing命令。。

    所以我們使用-D選項刪除 testing 分支。

    # 1.刪除分支
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git branch -D testing
    Deleted branch testing (was 25f0827).
    
    # 2.查看本地庫中的分支,就只有master分支了
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git branch
    * master
    
    # 3.查看提交歷史記錄
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git log --graph --oneline
    * b97ccfd (HEAD -> master) 第3次提交,新增內(nèi)容:branch test v3
    * f72a9fe 第2次提交,新增內(nèi)容:branch test v2
    * fa2439a 第1次提交,新增readme.txt文件
    # 可以看到對testing分支的修改,只要沒有合并,對master分支是沒有影響的。
    
    # 4.查看可回退的提交歷史記錄
    L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
    $ git reflog
    b97ccfd (HEAD -> master) HEAD@{0}: checkout: moving from testing to master
    25f0827 HEAD@{1}: commit: 第4次提交,新增內(nèi)容:branch test v4
    b97ccfd (HEAD -> master) HEAD@{2}: checkout: moving from master to testing
    b97ccfd (HEAD -> master) HEAD@{3}: commit: 第3次提交,新增內(nèi)容:branch test v3
    f72a9fe HEAD@{4}: commit: 第2次提交,新增內(nèi)容:branch test v2
    fa2439a HEAD@{5}: commit (initial): 第1次提交,新增readme.txt文件
    
    # 可以看到只要HEAD移動過,所有歷史軌跡都會保留在Git版本庫中。
    # (也就是.git/objects目錄中的文件只能無限的增多,存儲了就不會刪除掉。)

    提示:合并后的分支不僅無用,它的存在還會引起不必要的麻煩,一般都會刪除無用的分支。

    感謝各位的閱讀,以上就是“Git分支基本操作方法有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Git分支基本操作方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    git
    AI