我一直在做一个项目,但不幸的是,我忘了切换到我的分支,因此一直在做主人
如何将我在这里完成的工作(3个文件)从master转移到我的分支(例如,名为 branch123 ),而无需掌握?
答案 0 :(得分:479)
听起来你只需要以下内容:
git stash
git checkout branch123
git stash apply
然后你应该回到你自己的分支而不接触主分支。
答案 1 :(得分:44)
这是一个古老的问题,但它在谷歌的“处理错误的分支”方面处于领先地位。我认为更好的答案是简单地检查您想要正在处理的分支。不需要藏匿任何东西:
git checkout branch123
checkout
的默认行为是不覆盖工作目录中的修改文件,因此不会丢失任何内容。基于我发现的here。
修改强>
只有在工作目录中修改的文件在master
和branch123
中相同时,此方法才有效。实际上,Jefromi在对已接受答案的评论中指出了这一点,但我第一次看到它时并不明白他在说什么。
答案 2 :(得分:6)
git stash
就是您所需要的。
答案 3 :(得分:0)
由于可以创建一个新分支,但在签出文件时无法检出现有分支,我发现以下技巧使用临时分支工作:
此方案至少适用于VS 2015 Git插件,但很可能适用于任何git工具。
编辑:我发现在执行合并之前你必须执行temp分支的rebase(git rebase --onto)。否则,master中的更改将包含在合并中。上面的额外步骤3.5。在这里进一步了解rebase: https://git-scm.com/book/en/v2/Git-Branching-Rebasing