我有一个 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/