同样,我是Git的新手,所以这可能看起来像一个愚蠢的问题。我有一个拥有7个提交的主分支。我想回到第三次提交,因为我意识到它在那里一切都停止工作。我想我应该检查第三次提交。但是,当我这样做时,我的工作副本成为一个独立的头。我的新提交并不像通常那样在主分支上进行。我怎么能解决这个问题?更改以前的提交SourceTree
0
A
回答
1
有几种选择,你在这里:
如果你已经推你不小心改写遥控器上的历史,你可以这样做:
$ git reset --hard <commitID-of-third-commit>
并推动东西。
- 如果你还没有推提交的是,你可以做同样在1,但没有改写历史的远程
如果你不希望重写远程您必须恢复所有的3间提交历史和最后一个,并从那里继续前进。
$ git revert <commit 4>
$ git revert <commit 5>
记住的麻烦,git reset --hard
是破坏性的,会破坏未提交的,以及已经COMMITED变化
等
1
如果你检出通过$ git checkout <commit id>
提交,你结束了一个分离的头,就像你说的。如果你想从这一点继续工作,你必须使用$ git checkout -b <new_branch_name>
创建一个新的分支。
如果要将当前分支重置为较早的提交,可以使用$ git reset
,如ckruczeks answer中所述。但请注意,(硬)重置可能具有破坏性,因为您的未修改的更改发生松动,并且您的某些提交不再通过您的分支访问。如果您不完全确定您不再需要这些提交,则可以在拨打$ git reset
之前签出备用分支。
通常不建议硬复位已经推送到远程的分支。其他人可能已经在您即将重设的分支之上工作。
相关问题
- 1. 在提交新的更改之前更正以前的提交
- 2. 回到之前在SourceTree中的提交
- 3. Git - 将未提交的更改推送到以前的提交
- 4. SourceTree - 不知道如何返回到以前的提交
- 5. 需要从以前的提交中抓取一些代码 - Sourcetree
- 6. 如何修改以前提交的更多更改?
- 7. 如何在SourceTree中丢弃未提交的更改?
- 8. SourceTree更改分支,失去未提交的工作?
- 9. 如何在sourcetree中更改哪些提交是主人?
- 10. LINQ提交更改不提交更改
- 11. Mercurial:修改以前的提交日期
- 12. 修改之前提交的提交
- 13. 将下一个提交的更改合并到当前提交
- 14. Cherry pick的问题:以前提交的更改也适用
- 15. 撤消或删除以前的Git提交中的更改
- 16. 删除以前提交/更改集中的文件
- 17. 暂时撤销以前提交的更改
- 18. WP_Insert_Post根据以前提交的状态更改状态
- 19. 恢复以前提交状态的所有更改
- 20. 不删除以前的提交并对其进行更改。
- 21. TortoiseHG - 更改以前的提交用户名?
- 22. 回去提交前和更改推
- 23. 在保存之前提交NSTextField更改
- 24. 提交更改
- 25. 在行更改前提交DataGridView中的更改
- 26. rebranch以前提交
- 27. 忽略Sourcetree中的已提交文件
- 28. SourceTree想要提交未改变的文件
- 29. SourceTree如何重置已提交的提交
- 30. 在SourceTree中添加前缀提交消息
请注意,使用'$ git reset --hard'可能具有**破坏性**,因为您将失去所有未被改动的更改。 – kowsky
Thx我会补充一点,我认为这很清楚,但总是说得更好。 – ckruczek