【学习笔记】Git branch

在开发专案时可能会有多人同时commit和push的状况,很容易有conflict,这时候就需要使用分支来避免conflict。

branch是git中很重要的概念,透过branch可以分流处理不同的问题,也可以进行多人协作,非常方便。
branch可以想像成是原分支的複製版,会继承目前的commit和前面所有的commit。在新的分支上进行开发的话,不会影响到原本的分支,也不会影响到其他分支。
http://img2.58codes.com/2024/201468294l72nidfCE.png
上图中可以看到,有main和dev两个分支,main的commit有C0、C1;dev则是有C0~C4的commit。

建立branch

要建立分支,可以使用git branch <分支名称>来建立。
http://img2.58codes.com/2024/201468296ka9fjBqeE.png
如果要切换分支,可以使用git checkout <branch>git switch <branch>,图片上的「」符号代表现在所在分支。

checkout就像是移动标记的指令,透过checkout指令可以移动到想要的位置。此外,checkout同时也有复原的作用。
比较新的git将checkout的功能分开成两个指令:switch(移动)和restore(回复),基本上新旧做法都能使用。

如果要在新建分支的同时切换分支,可以使用git switch -c <branch>(c for create)或git checkout -b <branch>

合併分支

如果想要将两条不同分支的内容合併以方便版本管理的话,可以使用git merge <branch>git rebase <branch>的方法。

merge

http://img2.58codes.com/2024/20146829P5CvTZ0ara.png
如上图,merge会送出一个特殊的commit,同时继承自两条分支的最后一个commit,因此,merge后的main分支可以追溯两条不同分支的commit。

rebase

相对于merge,rebase有点像是把别条分支的commit剪下贴上过来,使用git rebase <目的地分支> <要移动的分支>(若是要移动目前所在分支,可以不用打后面的部分),可以移动分支。
http://img2.58codes.com/2024/20146829nhinWNV6w9.png
如上图,将new-f分支剪下贴上到main分支,new-f分支变成在main的后面,C2也移动过去变成C2'。
若须要更新main分支到new-f的位置,可以用merge或rebase,让main快速移动到目前所在位置。
http://img2.58codes.com/2024/20146829qdDYhjBBfN.png
http://img2.58codes.com/2024/20146829XDeRx2opaj.png

branch常用指令

git checkout -b <branch名称>:建立新branch并切换过去。
git branch:可以看到所有branch。
git branch -a:可以看到remote上所有的branch。

git rebase <要移到哪个分支>:将branch的进度接回最新进度。
git rebase --continue: 解决冲突后继续rebase。
git branch -d <branch>: 删除本地branch。
git merge <branch>: 把目前branch整併回另一个分支。

最后附上图片中的网站: Learn Git Branch,一个图像化、可以实作的git学习网站,非常好用!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章