git pull 、git fetch 和 git rebase 之间有什么区别?
what is the difference between git pull , git fetch and git rebase?
git pull
、git fetch
和git rebase
有什么区别?我觉得 pull 和 fetch 是一样的。
获取:更新本地 远程更改但不合并 与任何 本地分支 。
Pull: update local 并 merge current-branch。
git fetch
: 从origin获取最新变化(无合并)
git pull
= git fetch
+ git merge
如果您将 feature
分支变基到 master
分支。 git rebase master
,它将使 feature
分支 commits/changes
保持在顶部。
假设您在 master
分支(A
-> C
)中有两个提交,在 feature
分支中有两个提交(B
-> D
).
假设您在 feature
分支 (git checkout feature
)。现在如果你 merge master
然后提交历史:
(previous commit) - A -- C <- master
\ \
B -- D -- M <- feature
在这里,M
对应 new-merge-commit-sha
。
对于 rebase master
,提交历史:(A
-> C
-> B'
-> D'
).
git pull
、git fetch
和git rebase
有什么区别?我觉得 pull 和 fetch 是一样的。
获取:更新本地 远程更改但不合并 与任何 本地分支 。
Pull: update local 并 merge current-branch。
git fetch
: 从origin获取最新变化(无合并)git pull
=git fetch
+git merge
如果您将
feature
分支变基到master
分支。git rebase master
,它将使feature
分支commits/changes
保持在顶部。假设您在
master
分支(A
->C
)中有两个提交,在feature
分支中有两个提交(B
->D
).假设您在
feature
分支 (git checkout feature
)。现在如果你merge master
然后提交历史:(previous commit) - A -- C <- master \ \ B -- D -- M <- feature
在这里,
M
对应new-merge-commit-sha
。对于
rebase master
,提交历史:(A
->C
->B'
->D'
).