我經常需要squash
許多小提交到一個大合併從一個發展特徵分支到master
。所以我做是否有可能枚舉git log中的提交?
git rebase -i HEAD~X
其中X是最新的提交壓扁的次數。但是,由於我有時處理幾十個提交,我必須在git log
中手動計數,我試圖避免。
有沒有辦法生成一個git log-like報告,除了顯示commit SHA之外,還會枚舉它們0-n?
我經常需要squash
許多小提交到一個大合併從一個發展特徵分支到master
。所以我做是否有可能枚舉git log中的提交?
git rebase -i HEAD~X
其中X是最新的提交壓扁的次數。但是,由於我有時處理幾十個提交,我必須在git log
中手動計數,我試圖避免。
有沒有辦法生成一個git log-like報告,除了顯示commit SHA之外,還會枚舉它們0-n?
你可以只是做
git rebase -i <sha>
(其中<sha>
是最後的父母承諾要重建基礎)
或
git rebase -i <sha>~
(其中<sha>
是最後的承諾是衍合)。
回到你原來的問題,我不認爲有辦法做到這一點。由於SHA是git世界中的頭等公民,並且^
和~
語法恰好用於返回少量已知數量的提交。當你不知道提前返回的步驟數時,使用這種語法沒有任何意義。因此,我不認爲git log
有任何枚舉提交的方法,因爲我不能想到任何用例;人們總是可以使用SHA。
這就是說,當然沒有人可以阻止你做git log --pretty=oneline
並使用任何外部工具(例如Unix)(例如Unix)對行進行編號。 awk
,nl
或任何你喜歡的。
是'
@amphibient這是最後一次承諾的父母。你也可以使用'git rebase -i
@amphibient我也加了一些想法,爲什麼我賭'git log'沒有這個功能。 – kirelagin 2015-04-02 22:03:04
嘗試:
$ git log --pretty=format:"%h" @{3}..| nl -v0
0 da15a22
1 64e0e39
2 33fa834
,並自HEAD
提交的所需數量的替代3
。
你顯然沒有閱讀或理解我的問題 – amphibient 2015-04-02 21:58:54
我沒有意識到你想提交索引號。我更新了答案。 – svlasov 2015-04-02 22:13:11
你確定'git merge --squash'不行嗎? – 2015-04-02 22:17:05
我曾經在哪裏提過? – amphibient 2015-04-02 22:30:05
你沒有,所以我問你是否考慮過。如果你壓扁所有這是迄今爲止最簡單的。如果你正在壓縮一些,那麼'git reset --soft SHA'技巧。 – 2015-04-03 00:04:16