Git - Git教程 1.2:创建与合并分支

原理

1 - Git 的每次提交,它都会把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在 Git 里这个分支叫主分支,即 master 分支

     HEAD 严格来说不是指向提交,而是指向 master,master 才是指向提交的,所以 HEAD 指向的就是当前分支。一开始的时候,master 分支是一条线,Git 用 master 指向最新的提交,再用 HEAD 指向 master,就能确定当前分支,以及当前分支的提交点

2 - 每次提交时 master 分支都会向前移动一步,这样随着你不断提交,master 分支的线也越来越长。当我们创建新的分支,比如 dev,Git 就会新建一个指针叫 dev,它指向 master 相同的提交,再把 HEAD 指向 dev,就表示当前分支在 dev 上

3 - Git 创建一个分支很快,因为除了增加一个 dev 指针,改一改 HEAD 的指向,工作区的文件是没有任何变化的!不过从现在开始,对工作区的修改和提交就是针对 dev 分支了。比如新提交一次后,dev 指针往前移动一步,而 master 指针保持不变

4 - 假如我们在 dev 上的工作完成了,就可以把 dev 合并到 master 上。最简单的方法,就是直接把 master 指向 dev 的当前提交,就完成了合并。所以 Git 合并分支也很快!就改改指针,工作区内容也不变

  

5 - 合并完分支后,甚至可以删除 dev 分支。删除 dev 分支就是把 dev 指针给删掉,删掉后,我们就剩下了一条 master 分支

命令行

1 - 在桌面上新建一个 REMAKE 版本库,使用 git branch 命令查看当前分支

$ cd /Users/bs.ep/Desktop/REMAKE 
$ git init
Initialized empty Git repository in /Users/bs.ep/Desktop/REMAKE/.git/
$ git branch

这是 git branch 是什么都不会显示的,因为你的版本库是全新的,还没有做任何提交操作

2 - 新增 FILE_T.txt 文件,并进行添加、提交,现在我们查看当前分支状况

1 $ git add FILE_T.txt
2 $ git commit -m "start branch"
3 [master (root-commit) 06d2044] start branch
4  1 file changed, 1 insertion(+)
5  create mode 100644 FILE_T.txt
6 $ git branch
7 * master

git branch 命令会列出所有分支,当前分支前面会标一个 * 号

3 - 创建 dev 分支,且切换到 dev 分支

1 $ git checkout -b dev
2 Switched to a new branch 'dev'

git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令

1 $ git branch dev
2 $ git checkout dev
3 Switched to branch 'dev'

4 - 查看当前分支

1 $ git branch
2 * dev
3   master

5 - 之后就以在 dev 分支上正常提交,比如对 FILE_T.txt 做个修改,添加内容 Create a new branch 并进行提交

1 $ git add FILE_T.txt
2 $ git commit -m "new branch"
3 [dev f14f756] new branch
4  1 file changed, 2 insertions(+), 1 deletion(-)

6 - 现在 dev 分支工作完成,切回到 master 分支

1 $ git checkout master
2 Switched to branch 'master'

7 - 切换回 master 分支后查看 FILE_T.txt 文件,刚才添加的内容不见了!因为它是提交在 dev 分支上的,而 master 分支此刻的提交点并没有变

8 - 现在我们把 dev 分支的工作成果合并到 master 分支上

1 $ git merge dev
2 Updating 06d2044..f14f756
3 Fast-forward
4  FILE_T.txt | 3 ++-
5  1 file changed, 2 insertions(+), 1 deletion(-)

git merge 命令用于合并指定分支到当前分支。合并后再查看 FILE_T.txt 的内容,就可以看到和 dev 分支的最新提交是完全一样

9 - 合并完成后,就可以放心地删除 dev 分支

1 $ git branch -d dev
2 Deleted branch dev (was f14f756).
3 $ git branch
4 * master

注:因为创建、合并和删除分支非常快,所以 Git 鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在 master 分支上工作效果是一样的,但过程更安全 


 

posted on   低头捡石頭  阅读(9)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示