欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Git基礎學習之分支基本操作詳解

 更新時間:2022年10月24日 16:00:17   作者:繁華似錦Fighting  
這篇文章主要為大家詳細介紹了Git基礎學習中分支的基本操作,例如分支的創(chuàng)建、查看、切換和刪除等,感興趣的小伙伴可以跟隨小編一起學習一下

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)圖示理解

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

如下圖:

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

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

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

如下圖所示:

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

2、查看分支列表

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

如下圖:

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

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

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.查看當前正在工作的分支。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing) # 這里
$ git branch
  master
* testing   # 這里

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

提示:

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

例如:git checkout -b testing

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

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

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

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

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

# 1.查看當前工作的分支
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)如下圖:

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

5、刪除分支

使用命令:git branch -d branchname。

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

這個時候我們需要先切換回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)如下圖:

image

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

是使 HEAD 指回 master 分支。

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

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

也就是說,你現(xiàn)在做修改的話,項目將始于 master 分支版本。 本質(zhì)上來講,這就是忽略 testing分支所做的修改,以便于向另一個方向進行開發(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)容,更多關(guān)于Git分支基本操作的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用IDEA回滾某次提交的代碼步驟

    使用IDEA回滾某次提交的代碼步驟

    這篇文章主要介紹了使用IDEA回滾某次提交的代碼步驟,在平時的開發(fā)中,不小心commit了錯誤的代碼怎么辦,就需要用到回滾了,需要的朋友可以參考下
    2023-03-03
  • 編程愛好者學習心得補充

    編程愛好者學習心得補充

    由于網(wǎng)絡的發(fā)展趨勢,現(xiàn)在越來越多的人喜歡電腦,并學習編程,現(xiàn)在新手不缺,就是缺少深入鉆研的牛人,這里簡單介紹下新手編程學習經(jīng)驗,需要的朋友可以參考下
    2013-06-06
  • kafka不支持讀寫分離原理分析

    kafka不支持讀寫分離原理分析

    這篇文章主要為大家介紹了kafka不支持讀寫分離原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Git的配置及文件傳輸方法圖文詳解

    Git的配置及文件傳輸方法圖文詳解

    這篇文章主要介紹了Git的配置及文件傳輸方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • git之遠程代碼回滾master問題

    git之遠程代碼回滾master問題

    這篇文章主要介紹了git之遠程代碼回滾master問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 獲取目錄下所有文件名的代碼

    獲取目錄下所有文件名的代碼

    獲取目錄下所有文件名的代碼,需要的朋友可以參考下。
    2011-07-07
  • 解決IDEA中編輯HTML格式文件不自動縮進問題

    解決IDEA中編輯HTML格式文件不自動縮進問題

    這篇文章主要介紹了解決IDEA中編輯HTML格式文件不自動縮進問題,本文內(nèi)容簡短,解決方法給大家提出了,需要的朋友可以參考下
    2020-01-01
  • 讓開發(fā)自動化 用 Eclipse 插件提高代碼質(zhì)量

    讓開發(fā)自動化 用 Eclipse 插件提高代碼質(zhì)量

    如果能在構(gòu)建代碼前發(fā)現(xiàn)代碼中潛在的問題會怎么樣呢?很有趣的是,Eclipse 插件中就有這樣的工具,比如 JDepend 和 CheckStyle,它們能幫您在軟件問題暴露前發(fā)現(xiàn)這些問題。
    2009-05-05
  • vsCode中配置setings.json的技巧

    vsCode中配置setings.json的技巧

    本文給大家分享的是一個在vsCode中配置好的setings.json的樣例,可以給大家一個參考,有需要的小伙伴可以來看下
    2020-01-01
  • git clone 子模塊沒下載全的問題解決

    git clone 子模塊沒下載全的問題解決

    這篇文章主要介紹了git clone 子模塊沒下載全的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08

最新評論