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

Tom*_*man 103 git branch

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

所以我现在要做的是:

  1. 创建一个名为(say)"edge"的新分支
  2. 将所有已更改/未更新的文件在主服务器上移动到另一端(这样主服务器在我开始修复错误时保持不变)
  3. 完成我的工作边缘,合并回主人

我怎样才能做到这一点?

JB.*_*JB. 98

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

  1. 创建一个新分支: git checkout -b edge
  2. 您的文件没有更改.只是git add什么需要和提交如常.
  3. 当你做了承诺上edge,切换回mastergit checkoutgit merge edge.


Von*_*onC 88

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

git stash
git checkout -b edge master
git branch -f master SHA1_before_your_commits
git stash apply
Run Code Online (Sandbox Code Playgroud)

  • @HaveAGuess吧.通过"采取所有我的改变",我还包括当前尚未添加的更改.因此藏匿. (4认同)

小智 13

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

git stash
git checkout oldBranch
git merge master
git checkout master
git stash apply
git checkout oldBranch
Run Code Online (Sandbox Code Playgroud)