git将更改合并到本地分支

时间:2010-04-15 19:30:33

标签: git

是否可以将更改从中央仓库合并到本地分支,而无需提交/存储本地分支和结账主数据上的编辑?

如果我正在处理本地分支“工作”并且有一些未经修改的更改,我使用以下步骤从中央仓库获取更新到我的工作分支。

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)

有什么比我现在做的更容易吗?

3 个答案:

答案 0 :(得分:12)

你可以(在分支work上):

git stash
git pull --rebase origin master
git stash apply

git pull --rebase两者都会进行远程更改并在远程更改之上重新设置本地更改。即基本上是你在脚本中显示的内容。

当然,本地更改应该在mergerebase上提交或隐藏(因为如果发生合并冲突,则应该保留相互冲突的更改以便您解决它们 - 但是您的本地更改变化呢?)

当您稍后决定更新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进行测试

来自this SO answer