将现有的,未提交的工作移到Git中的新分支
我开始了一些新function的工作,经过编码后,我决定这个function应该在自己的分支上。
如何将现有的未提交的更改移动到新的分支并重新设置当前的分支?
我想重置我当前的分支,同时保留新function的现有工作。
使用以下内容:
git checkout -b <new-branch>
这将离开你的当前分支,创build并签出一个新的分支,并保持所有的变化。 然后你可以做一个提交:
git add <files>
并通过以下方式致力于您的新分支:
git commit -m "<Brief description of this commit>"
工作目录中的更改和索引中的更改不属于任何分支。 这将改变这些变化将在哪里结束。
你不重置你的原始分支,它保持原样。 <old-branch>
上的最后一个提交仍然是一样的。 因此你checkout -b
然后提交。
或者:
-
将当前更改保存到临时存储中:
$ git stash
-
根据这个存储创build一个新的分支,并切换到新的分支:
$ git stash branch <new-branch> stash@{0}
提示:使用Tab键减lessinput储藏名称。
如果您在编写代码的同时在主分支上进行了提交 ,但您现在要将这些提交移至其他分支:
-
将您当前的历史logging复制到一个新的分支,带来任何未提交的更改:
git checkout -b <new-feature-branch>
-
现在强制原始的“凌乱”分支回滚:(不切换到它)
git branch -f <previous-branch> <earlier-commit-id>
例如:
git branch -f master origin/master
或者你做了4次提交:
git branch -f master HEAD~4
如果你提交它,你也可以select一个提交ID。 当我开始在master中工作时,我经常这样做,然后在推到我的起源之前想创build一个本地分支。
git cherry-pick <commitID>
如这里所描述的,你可以用樱桃挑选做很多事情,但这可能是一个用例。