如何将我的本地未提交更改合并到另一个Git分支中?
我该如何在git中做到这一点:
我目前的分支是分支1,我做了一些本地更改。 不过,我现在意识到我实际上是想将这些更改应用于branch2。 有没有办法应用/合并这些更改,以使它们成为branch2上的本地更改而不在branch1上提交它们?
由于您的文件尚未在branch1
中branch1
:
git stash
git checkout branch2
git stash pop
要么
git stash
git checkout branch2
git stash list # to check the various stash made in different branch
git stash apply x # to select the right one
正如benjohn所说的(参见git stash
手册页):
要还存储未跟踪的(新添加的)文件,请添加参数-u
,以便:
git stash -u
存储,临时提交和重新分配可能都是过度的。 如果您还没有将已更改的文件添加到索引,那么您可能只能检出其他分支。
git checkout branch2
只要没有正在编辑的文件在分支1和分支2之间不同,这将工作。 它会让你在branch2上保持工作变化。 如果它们不同,则可以指定要将本地更改与通过使用-m
选项切换分支引入的更改合并到结帐。
git checkout -m branch2
如果您已经对索引添加了更改,那么您首先需要重置撤销这些更改。 (这将保留您的工作副本,它只会删除分阶段的更改。)
git reset
以下是前面提到的隐藏方法的较短的替代方案:
暂时将更改移至藏匿处。
git stash
创建并切换到新分支,然后只需一步即可弹出存储。
git stash branch new_branch_name
然后add
并commit
更改到这个新的分支。
上一篇: How to merge my local uncommitted changes into another Git branch?
下一篇: Git checkout: updating paths is incompatible with switching branches