不幸的是,我已经在一个分支中提交了几个文件,但是我的意图是将这些文件提交到另一个新分支中。 我现在还没有将该文件推送到该分支中。
那么请告诉我如何将已提交的文件移动到我的新分支中?
任何建议都将不胜感激。
不幸的是,我已经在一个分支中提交了几个文件,但是我的意图是将这些文件提交到另一个新分支中。 我现在还没有将该文件推送到该分支中。
那么请告诉我如何将已提交的文件移动到我的新分支中?
任何建议都将不胜感激。
git reset --soft HEAD^
取消提交文件,并使用git stash
隐藏您的更改。然后,您可以使用git checkout your-target-branch
检查您更改的正确目标分支,在此时,您可以使用git stash pop
获取您隐藏的更改,从而允许您在正确的分支中添加/提交/推送更改。请保留HTML标签。你可以在新提交的地方创建一个新分支:
git checkout -b aNewBranch
x--X--y--y (aBranch, newBranch)
你可以将你所在的分支重置回正确的提交记录(执行{{link1:git log
}}以获取正确的SHA1,它实际上可能是origin/aBanch
,因为你还没有推送它)
git branch -f aBranch <sha1>
x--X (aBranch)
\
--y--y (newBranch)
git checkout A
git branch B
现在分支 B 包含了你在分支 A 中已经提交的更改。剩下要做的就是从分支 A 中移除这些更改。可以按照以下步骤完成:
git reflog
git reset --hard HEAD<i>
这将会实现你想要做的事情。