2015-04-02 83 views
0

我經常需要squash許多小提交到一個大合併從一個發展特徵分支到master。所以我做是否有可能枚舉git log中的提交?

git rebase -i HEAD~X 

其中X是最新的提交壓扁的次數。但是,由於我有時處理幾十個提交,我必須在git log中手動計數,我試圖避免。

有沒有辦法生成一個git log-like報告,除了顯示commit SHA之外,還會枚舉它們0-n?

+0

你確定'git merge --squash'不行嗎? – 2015-04-02 22:17:05

+0

我曾經在哪裏提過? – amphibient 2015-04-02 22:30:05

+0

你沒有,所以我問你是否考慮過。如果你壓扁所有這是迄今爲止最簡單的。如果你正在壓縮一些,那麼'git reset --soft SHA'技巧。 – 2015-04-03 00:04:16

回答

1

你可以只是做

git rebase -i <sha> 

(其中<sha>是最後的父母承諾要重建基礎)

git rebase -i <sha>~ 

(其中<sha>是最後的承諾是衍合)。


回到你原來的問題,我不認爲有辦法做到這一點。由於SHA是git世界中的頭等公民,並且^~語法恰好用於返回少量已知數量的提交。當你不知道提前返回的步驟數時,使用這種語法沒有任何意義。因此,我不認爲git log有任何枚舉提交的方法,因爲我不能想到任何用例;人們總是可以使用SHA。

這就是說,當然沒有人可以阻止你做git log --pretty=oneline並使用任何外部工具(例如Unix)(例如Unix)對行進行編號。 awk,nl或任何你喜歡的。

+0

是''最舊的承諾回去? – amphibient 2015-04-02 21:51:57

+0

@amphibient這是最後一次承諾的父母。你也可以使用'git rebase -i 〜'。 – kirelagin 2015-04-02 21:53:58

+1

@amphibient我也加了一些想法,爲什麼我賭'git log'沒有這個功能。 – kirelagin 2015-04-02 22:03:04

-2

嘗試:

$ git log --pretty=format:"%h" @{3}..| nl -v0 
0 da15a22 
1 64e0e39 
2 33fa834 

,並自HEAD提交的所需數量的替代3

+1

你顯然沒有閱讀或理解我的問題 – amphibient 2015-04-02 21:58:54

+0

我沒有意識到你想提交索引號。我更新了答案。 – svlasov 2015-04-02 22:13:11

相關問題