将现有的未提交的工作移至Git中的新分支
我开始了一些关于新功能的工作,在编写了一些代码之后,我决定将这个功能放在它自己的分支上。
如何将现有的未提交更改移至新分支并重置当前的分支?
我想重新设置当前分支,同时保留新功能的现有工作。
使用以下内容:
git checkout -b <new-branch>
这将使您的当前分支保持原样,创建并签出新分支并保留所有更改。 然后你可以做一个提交:
git add <files>
并通过以下方式致力于您的新分支:
git commit -m "<Brief description of this commit>"
工作目录中的更改和索引中的更改不属于任何分支。 这改变了这些改变将以什么结束。
你不重置你的原始分支,它保持原样。 <old-branch>
上的最后一次提交仍然是相同的。 因此你checkout -b
然后提交。
或者:
将当前更改保存到临时隐藏:
$ git stash
根据这个存储创建一个新的分支,并切换到新的分支:
$ git stash branch <new-branch> stash@{0}
提示:使用Tab键减少输入储藏名称。
如果您在编写代码时在主分支上进行了提交 ,但您现在想要将这些提交移至其他分支:
将您当前的历史记录复制到新的分支中,并带来任何未提交的更改:
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
警告:看起来git branch -f master origin/master
会重置该分支的跟踪信息。 因此,如果您将master
分支配置为推送到origin/master
以外的其他地方,那么该配置将会丢失。
另一种方法是使用这种重置技术。 但这些说明将放弃所有未提交的更改。 如果你想保留这些东西,先把它们藏起来,最后把它们除掉。
链接地址: http://www.djcxy.com/p/555.html上一篇: Move existing, uncommitted work to a new branch in Git
下一篇: Undoing a git rebase