是否可以将更改从中央仓库合并到本地分支,而无需提交/存储本地分支和结账主数据上的编辑?
如果我正在处理本地分支“工作”并且有一些未经修改的更改,我使用以下步骤从中央仓库获取更新到我的工作分支。
git stash
git checkout master
git pull
git checkout work
git rebase master
git stash pop
通常“工作”中没有未提交的更改,然后我省略了存储步骤。
我真正想要的是以下内容:
git pull master (updates master while work branch is checked out and has changes)
git rebase master (rebases the updates into work branch uncommited changes are still safe)
有什么比我现在做的更容易吗?
答案 0 :(得分:12)
你可以(在分支work
上):
git stash
git pull --rebase origin master
git stash apply
git pull --rebase
两者都会进行远程更改并在远程更改之上重新设置本地更改。即基本上是你在脚本中显示的内容。
当然,本地更改应该在merge
或rebase
上提交或隐藏(因为如果发生合并冲突,则应该保留相互冲突的更改以便您解决它们 - 但是您的本地更改变化呢?)
当您稍后决定更新master
并将work
分支与其合并时,它不会导致问题,因为拉动的更改是相同的。因此,您无需在提取更改时更新master
。
答案 1 :(得分:2)
如果您有未提交的更改,我认为您无法提取。
因此,您可以采取以下措施:
git stash
git pull --rebase <remote> <branch> # Calls rebase instead of merge.
git stash pop
答案 2 :(得分:0)
自2010年以来,情况可能发生了变化,但即使您有未经修改的更改,也可以从遥控器中取出。您的本地更改将保持未提交状态,因此您可以随意区分或合并它们。
git pull origin master
使用git版本1.9.5.msysgit.1进行测试