【问题标题】:Proper way to clean git history on master在 master 上清理 git 历史记录的正确方法
【发布时间】:2017-01-29 15:28:43
【问题描述】:

我在“master”分支上。 我有这样的 git 历史:

333  (#82)
444  (#83)

然后我做了一些提交和还原(222->111->010->789->456->123):

123 Revert "(#84)"
456 Revert "(#81)"
789 Revert “(#81)"
010 Revert "(#86)"
111  (#86)
222  (#84)
333  (#82)
444  (#83)

我需要以某种方式清除那些错误的步骤 (222->111->010->789->456->123) 以将历史记录返回:

333  (#82)
444  (#83)

如果我这样做可以吗:

git rebase -i 333

并且会丢弃错误的提交? 那么

git push -f

【问题讨论】:

标签: git github git-commit git-revert


【解决方案1】:

假设您没有推送提交和恢复, 执行以下操作:

git reflog  

这将为您提供按时间倒序排列的操作列表(包括所有还原和提交)。找到最后一个稳定提交并以HEAD@{somenumber} 的形式找到它的头部。然后回退到该提交,请执行以下操作:

git reset --hard HEAD@{somenumber}

【讨论】:

  • 我想他已经知道哈希了,也就是333,所以命令应该是git reset --hard 333
猜你喜欢
  • 2021-12-26
  • 2017-12-09
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 2020-01-07
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多