【发布时间】:2011-04-05 16:01:16
【问题描述】:
我需要一种方法来快速移动到 git 分支中的上一个和下一个提交。
对于以前的我发现我可以做到:
git reset --hard HEAD~1
并且可能在 git prev 或其他名称中使用别名,但我不知道如何“向上”移动到下一个提交。
理想的解决方案是使用 2 个别名 git prev 和 git next。
谢谢
【问题讨论】:
-
git reset --hard HEAD~1具有破坏性;它丢弃第二个最近提交之后的所有提交内容(例如,最近的提交以及索引和工作副本中的任何更改)。git checkout是您应该使用的命令。 -
如果您处于合并提交(多个父项)或作为多个提交的父项的提交中,您希望发生什么? git 存储库就像一个 DAG,分支只是指向该图的指针,因此除非您有线性历史记录,否则“上一个”和“下一个”不一定是明确定义的。
-
你真正想做什么?如果您碰巧正在寻找一个引入问题(或修复问题)的提交,那么您实际上希望使用
git bisect,它可以帮助您进行二进制搜索。 -
@hammar 让我们保持简单并假设一个线性历史