git - 与 origin master 相比,git 中的 origin/master 是什么?

标签 git

我想在此处添加此问题作为对@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/mastermaster 都会更新/merge 。当然假设我目前在 master 分支中(即 git checkout master 是我最后一次 checkout )。

最佳答案

  • master 是您本地的分支机构。
  • origin master 是名为 origin 的远程存储库上的分支 master
  • origin/masterorigin master 的本地副本。

当你执行 git pull(我认为是邪恶的,还有其他人吗?)时,它会自动执行:

  • git fetch :它将 origin master 复制到 origin/master 中。 (以及所有其他 origin xxxorigin/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/

相关文章:

git - "git add submodule"上的 fatal error

windows - `gitk` 使用`where`命令找到程序但无法执行?

linux - 使用符号链接(symbolic link)及其内容对 linux 文件夹进行版本控制

git - 在 Git Bash 中创建到 Azure DevOps 的 pull 请求

c# - 当 TFS 为构建克隆 git repos 时出现 AppDomainUnloadedException

git - 如何摆脱git中的 merge 提交

git - 我需要在 rebase 后执行提交吗?

git - 亚马逊 beanstalk ec2 实例当前 git sha

git - 如何验证 BFG Repo-Cleaner 是否已从 git 存储库中正确删除大文件?

git - 权限被拒绝(公钥)/致命 : The remote end hung up unexpectedly?