2011-04-05 83 views
7

我需要一种方法来快速移动到git分支中的上一个和下一个提交。Git:移动到上一个和下一个提交

对于以前我发现我可以这样做:

git reset --hard HEAD~1

,可能别名在git prev或东西,但我不能找出如何将“上升”到下一个承诺。

理想的解决方案将使用2个别名git prevgit next

感谢

+3

'GIT中的复位 - 硬HEAD〜1'是破坏性的;它会放弃第二次最近提交后的所有提交内容(例如,最近的提交以及索引和工作副本中的任何更改)。 'git checkout'是你应该使用的命令。 – gotgenes 2011-04-05 16:05:24

+1

可能的重复[引用Git中提交的孩子](http://stackoverflow.com/questions/1761825/referencing-the-child-of-a-commit-in-git) – 2011-04-05 16:06:06

+2

你想要什么如果你在一个合并提交(多个父项)中,或者在多个提交的父项提交中发生?一个git仓库就像一个DAG,分支只是指向这个图表的指针,所以除非你有线性历史,否则'previous'和'next'不一定是明确定义的。 – hammar 2011-04-05 16:06:46

回答

5

有一个方便的别名设置由混帐称为ORIG_HEAD其中记录所使用的最后一个头。所以当你做一个git reset --hard HEAD〜1时,刚刚重置的头部数据将被存储在ORIG_HEAD中。

所以别名git的分组与git重置下与git --hard HEAD〜1(或HEAD^1) 和别名GIT中的复位 - 硬ORIG_HEAD

+6

这几乎就是这样,问题是当试图两次执行'git next'时 – 2011-04-05 17:36:01

+0

另外,当有多个开发者贡献时,“git prev”无法正常工作回购。它跳转到由同一个开发人员进行的提前提交。 – 2014-09-10 17:28:43

相关问题