【问题标题】:Git Committed files move from one branch to another before pushGit 提交的文件在推送之前从一个分支移动到另一个分支
【发布时间】:2015-10-16 00:56:48
【问题描述】:

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

任何建议将不胜感激。

【问题讨论】:

标签: github


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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)
    

    【讨论】:

      【解决方案3】:

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

      git checkout A
      git branch B
      

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

      git reflog
      

      这将为您提供 repo 经历的所有更改的列表。选择您希望分支 A 恢复到的 HEAD 值。

      git reset --hard HEAD<i>
      

      这会做你打算做的。

      【讨论】:

        猜你喜欢
        • 2011-05-06
        • 2018-12-19
        • 1970-01-01
        • 2018-08-12
        • 1970-01-01
        • 2012-12-03
        • 2021-10-11
        • 1970-01-01
        • 2020-10-23
        相关资源
        最近更新 更多