我想在此处添加此问题作为对@KevinBallard 的回答的评论 What's the difference "origin master" vs "origin/master" ,但我的评论太长了。
所以我的问题是:
如果我在一个名为 topic
的分支中,是否可以只写 git rebase master
而不是 git rebase origin/master
?或者真的有两个不同的本地 master
分支?一个是远程 master 分支的副本,一个是我自己的 master 分支?如果是这样:当我 git pull
时,两个本地主分支(一个称为 origin/master,另一个称为 master)是否更新了?我很困惑……
或者可能是这样的:origin/master
是真正的远程 master 分支的本地副本,远程被获取到(复制,即只是覆盖) ,而我名为 master
的本地分支仅在我 git merge origin/master
(或 git rebase …
)时更改。那就是:当我 git pull origin master
时,我的本地副本 origin/master
和 master
都会更新/merge 。当然假设我目前在 master 分支中(即 git checkout master
是我最后一次 checkout )。
最佳答案
master
是您本地的分支机构。origin master
是名为origin
的远程存储库上的分支master
。origin/master
是origin master
的本地副本。
当你执行 git pull
(我认为是邪恶的,还有其他人吗?)时,它会自动执行:
- git fetch :它将
origin master
复制到origin/master
中。 (以及所有其他origin xxx
到origin/xxx
)。 - git merge :它将
origin/master
merge 到master
中。
当你想 rebase master 时,你必须这样做:
- 获取数据
- git rebase origin/master
git help pull
的摘录:
More precisely, git pull runs git fetch with the given parameters and calls git merge to merge the retrieved branch heads into the current branch
关于git - 与 origin master 相比,git 中的 origin/master 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321584/