Git – 在错误的分支上工作 – 如何将更改复制到现有主题分支

我一直在做一个项目,但不幸的是,我了切换到我的分支,因此一直在做主

我怎样才能把我从这里完成的工作(3个文件)复制到我的分支(称为branch123 ),而不需要大师?

听起来像所有你需要的是以下内容:

git stash git checkout branch123 git stash apply 

那么你应该回到你自己的分支上,而不要触摸主分支。

这是一个古老的问题,但它在谷歌的顶部“工作在错误的分支”。 我认为更好的答案是简单地检查你想要的分支。 不需要存储任何东西:

 git checkout branch123 

checkout的默认行为是不覆盖你的工作目录中的修改文件,所以你不会失去任何东西。 基于我在这里find的。

编辑:只有在master目录和branch123目录branch123中的工作目录中修改的文件相同时,此方法才会branch123 。 这是Jefromi在对接受的答案的评论中实际指出的,但是我第一次读它的时候我不明白他在说什么。

git stash是你所需要的。

在Git-Tools-Stashing中可以find完整的解释

由于有可能创build一个新的分支,但不可能签出一个现有的分支,同时签出文件,我发现使用临时分支工作的以下技巧:

这个场景至less在VS 2015 Git插件中起作用,但是很可能适用于任何git工具。

  1. 签出并更改主文件(ups !,错误的分支)
  2. 从master中创build一个新的分支“temp”(或者您select的任何未使用的名称)。 现在检出的文件将在temp中检出,而不在master中检出。
  3. 检查温度的变化(主人未触动)
  4. 现在,所有东西都被检入,可以检出现有的分支。 检查想要的分支(我想做的更改分支开始)3.5 Git的Rebase
  5. 将temp合并到想要的分支。 现在这些变化是在正确的分支。
  6. 删除临时分支,因为它不再需要

编辑:我发现你将不得不在执行合并之前执行临时分支的rebase(git rebase – nt)。 否则,主站中的更改将包含在合并中。 以上3.5步额外的步骤。 进一步了解这里rebase: https : //git-scm.com/book/en/v2/Git-Branching-Rebasing