同样,我是Git的新手,所以这看起来像是一个愚蠢的问题。我有一个7分钟的主分支。我想回到第3次提交,因为我意识到它已经停止了工作。我想我应该看看第3次提交。但是,当我这样做时,我的工作副本变成了一个独立的头。我的新提交不会像通常那样进入主分支。我怎么能解决这个问题?
答案 0 :(得分:1)
您有几种选择:
如果您已经推动并且您不在乎重写遥控器上的历史记录,您可以这样做:
$ git reset --hard <commitID-of-third-commit>
并推送东西。
请记住,git reset --hard
具有破坏性,会破坏未经修改的以及已经提交的更改
如果您不想在远程重写历史记录,则必须还原第3个和最后一个之间的所有提交,然后从那里继续。
$ git revert <commit 4>
$ git revert <commit 5>
等
答案 1 :(得分:1)
如果你通过$ git checkout <commit id>
签出提交,你最终会得到一个超然的头,就像你说的那样。如果您想从此时开始继续工作,则必须使用$ git checkout -b <new_branch_name>
创建新分支。
如果您要将当前分支重置为旧提交,可以使用$ git reset
中所述的$ git reset
。但请注意,(硬)重置可能具有破坏性,因为您松开了未经修改的更改,并且您的某些提交不再可通过您的分支访问。如果您不完全确定不再需要这些提交,则可以在<td class="activities" id="3">
<a id="3" class="btn add_activity" href="#">+</a>
</td>
呼叫之前签出备用分支。
通常不建议硬重置已推送到遥控器的分支。其他人可能已经在您即将重置的分支机构上工作。