在当前分支上进行所有更改并将它们移动到Git中的新分支

时间:2009-09-09 08:31:46

标签: git branch

我开始研究我认为在我的主分支上的小错误修复。然而,它已经失去了控制,我希望我创建了一个单独的分支来进行开发。

现在我想做的是:

  1. 创建一个名为(say)“edge”的新分支
  2. 将所有已更改/未跟踪的文件在主设备上移动到边缘(这样主设备在我开始修复错误时保持不变)
  3. 完成我的工作,合并回主人
  4. 我该怎么做?

3 个答案:

答案 0 :(得分:97)

如果你还没有提交任何东西,那么你已经处于正确的位置。

  1. 创建一个新分支:git checkout -b edge
  2. 您的文件未更改。只需git add通常需要和提交的内容。
  3. 完成edge后,请使用mastergit checkout切换回git merge edge

答案 1 :(得分:88)

要添加JB的答案,如果你已经已经开始在master上做一些提交,最后作为“边缘”工作,你可以:

git stash
git checkout -b edge master
git branch -f master SHA1_before_your_commits
git stash apply

答案 2 :(得分:13)

如果你试图将工作从master移到已经存在的分支,但是在master之后,git将不允许你切换到另一个分支。在这种情况下,请执行以下操作:

git stash
git checkout oldBranch
git merge master
git checkout master
git stash apply
git checkout oldBranch