赞
踩
git pull
和
git pull --rebase
命令都是从远端拉取代码,更新我们的仓库。
四个区:
git pull
是 git pull --merge
的简写。
git pull
与git pull --rebase
的关系如下:
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
远程库
的最新内容拉到本地库
,用户在检查了以后决定是否合并到工作区
中。git merge B
,那就是将分支B中的代码合并到分支A中。工作区
中,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。git rebase A
就是将B分支上的修改都变基(移到)A分支上工作区
中,即:git pull --rebase = git fetch + git rebase,可能会产生冲突手动解决。通过上面的比较,git pull 与 git pull --rebase的区分实际上就是git merge与git rebase的区分。为了方便区分我们使用两个不同名分支进行讲解。
合并后:
执行的合并命令:
$ git checkout master
$ git merge yang
执行的变基命令是:
$ git checkout yang
$ git rebase master
然后需要再执行如下命令,是master分支指向最新节点
$ git checkout master
$ git merge yang
由此可以看出merge和rebase的区别:
有一个yangMerge分支,有如下提交记录:
commit ... (HEAD -> yangMerge)
Author: ...
Date: Mon Jan 22 16:36:06 2024 +0800
fix:merge2
commit ...
Author: ...
Date: Mon Jan 22 16:34:40 2024 +0800
fix:merge1
有一个yangRebase分支,有如下提交记录:
commit ... (HEAD -> yangRebase)
Author: ...
Date: Mon Jan 22 16:36:29 2024 +0800
fix:rebase2
commit ...
Author: ...
Date: Mon Jan 22 16:35:03 2024 +0800
fix:rebase1
git rebase yangMaster
的命令,再查看分支,显示如下内容:commit ... (HEAD -> yangRebase,yangMerge) Author: ... Date: Mon Jan 22 16:36:29 2024 +0800 fix:rebase2 commit ... Author:... Date: Mon Jan 22 16:35:03 2024 +0800 fix:rebase1 commit ... Author:... Date: Mon Jan 22 16:36:06 2024 +0800 fix:merge2 commit ... Author: ... Date: Mon Jan 22 16:34:40 2024 +0800 fix:merge1
之后同步head分支:
在yangRebase分支执行git merge yangMaster
的命令
commit ... (HEAD -> yangRebase)
Author: ...
Date: Mon Jan 22 16:36:29 2024 +0800
fix:rebase2
git merge yangRebase
的命令,再查看分支,显示如下内容:commit ... (HEAD -> liyangDevMerge) Merge: ... // merge生成新结点记录 Author: ... Date: Mon Jan 22 16:59:19 2024 +0800 Merge branch 'liyangDevRebase' into liyangDevMerge commit ... Author: ... Date: Mon Jan 22 16:59:03 2024 +0800 fix:rebase2 commit ... Author: ... Date: Mon Jan 22 16:58:42 2024 +0800 fix:rebase1 commit ... Author: ... Date: Mon Jan 22 16:36:06 2024 +0800 fix:merge2 commit ... Author: ... Date: Mon Jan 22 16:34:40 2024 +0800 fix:merge1
可以发现merge命令会生成一个新的合并节点
,并且head指针直接定位到当前分支最新提交的merge节点上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。