溫馨提示×

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

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

git分支創(chuàng)建分支刪除分支合并

發(fā)布時(shí)間:2020-07-01 05:46:21 來源:網(wǎng)絡(luò) 閱讀:6941 作者:西索oO 欄目:軟件技術(shù)

本文git版本1.9.6


一、創(chuàng)建分支,刪除分支

二、創(chuàng)建分支,合并分支,刪除分支

三、創(chuàng)建分支,git 3-way merge,刪除分支


git branch 相關(guān)命令

git branch # 列出目前有多少branch
git branch new-branch # 產(chǎn)生新的branch (名稱: new-branch), 若沒有特別指定, 會(huì)由目前所在的branch / master 直接復(fù)制一份.
git branch new-branch master # 由master 產(chǎn)生新的branch(new-branch)
git branch new-branch v1 # 由tag(v1) 產(chǎn)生新的branch(new-branch)
git branch -d new-branch # 刪除new-branch
git branch -D new-branch # 強(qiáng)制刪除new-branch
git checkout -b new-branch test # 產(chǎn)生新的branch, 并同時(shí)切換過去new-branch
# 與remote repository 有關(guān)
git branch -r # 列出所有Repository branch
git branch -a # 列出所有branch

1、創(chuàng)建分支,刪除分支

1.1、創(chuàng)建branch

git分支創(chuàng)建分支刪除分支合并

1.2、切換到新的branch;Testbranch

git分支創(chuàng)建分支刪除分支合并

在切換過程中HEAD執(zhí)行變化如圖:

git分支創(chuàng)建分支刪除分支合并


也就是說雖然切換后HEAD指向了Testbranch,可是Testbranch還是和master一樣指向了最后一次的commit;

驗(yàn)證如下:

git分支創(chuàng)建分支刪除分支合并

切換后的HEAD

git分支創(chuàng)建分支刪除分支合并

1.3、切換回master,進(jìn)行驗(yàn)證,并刪除Testbranch

git分支創(chuàng)建分支刪除分支合并


刪除Testbranch,并且分支索引文件也不存在了。

git分支創(chuàng)建分支刪除分支合并

2、創(chuàng)建分支,合并分支,刪除分支

2.1、查看當(dāng)前master的最后commit log ;創(chuàng)建分支Testbranch

git分支創(chuàng)建分支刪除分支合并

git分支創(chuàng)建分支刪除分支合并

2.2、在當(dāng)前分支修改code,并且進(jìn)行commit,查看當(dāng)前commit log;

git分支創(chuàng)建分支刪除分支合并

2.3、切換回master,查看commit log 合并分支,查看commit log ;并刪除分支Testbranch,查看 commit log;

git分支創(chuàng)建分支刪除分支合并

git分支創(chuàng)建分支刪除分支合并

git分支創(chuàng)建分支刪除分支合并

Tips:


為什么要合并后再刪除Testbranch呢?

在master 分支,他對(duì)應(yīng)的最后索引為last commit,

git分支創(chuàng)建分支刪除分支合并

而在Testbranch分支,他對(duì)應(yīng)的最后索引為他剛剛的commit,我們假設(shè)為B;

git分支創(chuàng)建分支刪除分支合并

如果我們強(qiáng)制將在Master分支刪除分支Testbranch,那么Testbranch分支剛剛的commit就無效了;所以我們要先合并Testbranch后,在進(jìn)行刪除,合并后索引如圖:

git分支創(chuàng)建分支刪除分支合并

可以從上面的commit log 看出;


3、創(chuàng)建分支,git 3-way merge,刪除分支

Ps:上面創(chuàng)建了分支,并且在分支修改code,,進(jìn)行提交,如果在分支進(jìn)行修改code,并且在master進(jìn)行修改code呢?

3.1、查看master分支commit log ,創(chuàng)建Testbranch分支,查看commit log ,兩次修改code,分別進(jìn)行commit,查看commit log;

git分支創(chuàng)建分支刪除分支合并

git分支創(chuàng)建分支刪除分支合并

$ echo "print \"Test1\"" >> hello.pl
$ git commit -am "test1"
$ echo "print \"Test2\"" >> hello.pl
$ git commit -am "test2"

git分支創(chuàng)建分支刪除分支合并

3.2、切換至master,查看commit log;修改code,進(jìn)行commit;查看commit log;

git分支創(chuàng)建分支刪除分支合并

git分支創(chuàng)建分支刪除分支合并

3.3、將Testbranch進(jìn)行合并;刪除Testbranch

$ git merge Testbranch
$ git branch -d Testbranch
Deleted branch Testbranch (was ec4c4ba).


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

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

AI