【发布时间】:2013-09-30 10:28:34
【问题描述】:
当您在master 分支上运行git pull 时,它通常从origin/master 拉取。我在另一个名为newbranch 的分支中,但我需要运行一个命令,将git pull 从origin/master 转换为master,但我无法运行git checkout 来更改选定的分支,直到拉取完成后.有没有办法做到这一点?
为了提供一些背景知识,存储库存储了一个网站。我对newbranch 进行了一些更改,并通过将网站切换到newbranch 来部署它们。现在这些更改已在上游合并到 master 分支中,我也在尝试将网站切换回 master 分支。此时,newbranch 和origin/master 相同,但master 落后于origin/master,需要更新。问题是,如果我以传统方式进行:
$ git checkout master
# Uh oh, production website has now reverted back to old version in master
$ git pull
# Website is now up to date again
我需要实现与上述相同的 (git checkout master && git pull),但在此过程中无需将工作目录更改为较早的版本。
【问题讨论】:
-
@phi:我不认为它会起作用,因为我在
newbranch,没有什么可以藏匿的! -
我会克隆到一个新目录,将 newbranch 合并到 master,将 master 合并回 newbranch,然后从你所在的位置 git pull。 Master 和 newbranch 将是相同的。
-
@aet 他现在可以通过在
newbranch中执行git fetch; git merge origin/master在当前目录中执行此操作。克隆存储库的整个第二个副本的好处为零。
标签: git branch git-branch