Git Committed文件在推送之前从一个分支移动到另一个分支

时间:2015-07-25 11:28:46

标签: github

不幸的是我在一个分支中提交了几个文件,但我的意图是在其他新分支中提交这些文件。到目前为止,我还没有在该分支中推送该文件。 那么请告诉我如何在我的新分支中移动提交的文件?

任何建议都将受到赞赏。

3 个答案:

答案 0 :(得分:1)

您可以使用git reset --soft HEAD^取消对文件的提交,然后使用git stash隐藏更改。然后,您可以使用git checkout your-target-branch检查更改的正确目标分支,然后您可以git stash pop进行隐藏更改,并允许您添加/提交/推送正确的分支。

答案 1 :(得分:0)

您可以在新提交的位置创建新分支:

git checkout -b aNewBranch

x--X--y--y (aBranch, newBranch)

你可以重置你回到正确提交的分支(执行git log以获得正确的SHA1,它实际上可能是origin/aBanch,因为你还没推送它)

git branch -f aBranch <sha1>

x--X (aBranch)
    \
     --y--y (newBranch)

答案 2 :(得分:0)

假设当前分支是A.从该分支创建一个新分支。

git checkout A
git branch B

现在分支B包含您在分支A中提交的更改。剩下要做的就是从分支A中删除更改。这可以按如下方式完成:

git reflog

这将为您提供repo经历的所有更改的列表。选择要将分支A还原到的HEAD值。

git reset --hard HEAD<i>

这将做你想做的事。