我有一个 git 存储库,其中包含两个分支,1.0 和 master。如果我想在 1.0 上工作,我使用以下命令克隆它:

git clone ssh://user@server/project -b 1.0 project-1.0

一切都很好。如果我发出 git branch 命令,我会看到:
1.0
git branch -a 看起来像这样:
* 1.0
  remotes/origin/1.0
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

但是,如果其他人将更改推送到 master 而我对 1.0 进行更改并尝试推送,它将失败,因为我需要使用 master 更改更新我的 repo。为此,我结帐大师, pull 更改,然后切换回 1.0:
git checkout master
git pull
git checkout 1.0

但是,有没有一种更简单的方法可以提取最新的更改,而不必先结帐主人?

最佳答案

根据您的 git branch -a ,您没有名为 master 的本地分支。因此, git log master 不应该工作。远程跟踪分支——即 origin/master——总是在你获取时更新。所以如果你想从 master 远程查看 origin 分支的日志,你所要做的就是 git fetch; git log origin/master 。听起来您不想拥有自己的 master 版本,因此 git checkout master 可能是一个错误,这只会混淆您的工作流程。



这不是真的。只要没有人将不同的变化推送到 1.0,你就可以推送到它。 master 分支没有什么特别之处。您可以使用 git branch -d master(如果它与 1.0 不同,会通知您它已 merge 到 origin/master 但未 merge 到 HEAD),因为您似乎对维护自己的 master 版本不感兴趣。

再一次,推到 master 的人不会阻止您推到 1.0,并且您不需要检查本地 master 只是为了检查 origin/master

关于git - 将 git 更改 pull 入尚未 checkout 的分支,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4967187/

10-14 03:29