Git - 重置为特定提交后,下一步是什么?

时间:2016-03-03 15:19:29

标签: git atlassian-sourcetree git-commit git-reset

我是Git的新手并且陷入了无论是否犯下的境地。所以这可能是一个基本问题。我试图找到很多关于这一点,但没有找到任何特定于我的关注的答案。所以问这里。

我的分支机构有15个提交。现在我因为一个问题重置了我的第一次提交。 然后我做了更改,涵盖了所有提交的更改。

现在我的问题是我可以直接提交更改吗?它会被保存在其他提交的顶部吗?其他承诺及其历史将会发生什么。我是否需要删除历史记录? 或者我只需要提交更改,我的分支将准备合并? 或者,在我标记最终提交之前是否还有其他步骤?

2 个答案:

答案 0 :(得分:2)

重置分支时,它会移动分支指针而不更改您的提交。你离开了:

first commit                       branch name
|                                   |
* -- * -- * -- * -- * ... * -- * -- *

到此:

branch name
first commit
|
* -- * -- * -- * -- * -- * -- * -- * ...

你所有的其他提交仍然存在,但你不再依赖它们了。您可以提交更改。它将根据您的第一次提交进行新的单独提交。像这样:

first commit
|
* -- * -- * -- * -- * -- * -- * -- * ...
 \ branch name
  \|
   *

答案 1 :(得分:0)

根据您在mkasberg的回答中的评论,听起来您重置的提交已经已被推送到远程存储库。如果是这种情况,那么重置为先前的提交并不是解决问题的正确方法。

我建议将当前状态下的所有文件的副本保存到工作副本之外的位置。然后,重置您的工作副本,以便再次包含所有这15个提交。然后使用您创建的备份覆盖您的工作副本,并提交。