2011-04-05 35 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

相關問題