承諾我想運行一個腳本,將運行在提交測試,提前X承諾前進,並再次進行測試,重複操作,直至不能再進一步推進X Git中
如何採取某些提交我檢出並提前X提交? X可能是我想到的是10或100
的方法之一,是轉儲全部承諾哈希到列表,並跳轉名單上,但我不知道是否有gittier辦法做到這一點
承諾我想運行一個腳本,將運行在提交測試,提前X承諾前進,並再次進行測試,重複操作,直至不能再進一步推進X Git中
如何採取某些提交我檢出並提前X提交? X可能是我想到的是10或100
的方法之一,是轉儲全部承諾哈希到列表,並跳轉名單上,但我不知道是否有gittier辦法做到這一點
這裏是一個開始:
base=master
cur=10
step=3
while (($cur >= 0))
do
git show ${base}~${cur}
((cur -= $step))
done
相反的git show
你可能想籤和運行的東西。
因爲分支和合並不一定存在單一的「下一個」或「上一個」承諾,即使你犯A
和B
「之間」:
o - o - o
/ \
... - A - * - o o - B
\ /
o ------ o
如果你是在節點*
有是明顯的下一個/上一個提交,下一個是向右節點o
,而前一個是節點A
。但是在你向前移動之後,下一個「下一個」提交是什麼?我們是應該向上走向三節點線路還是向下走向二節點線路?
git bisect
做了很多棘手的事情,以儘量減少測試節點的數量,同時也處理(或試圖處理)這些分支和合並的情況。
Mayvbe你不想測試一些二元條件。例如,假設你的靜態分析工具只是簡單地生成一堆指標,你想知道,例如,「每提交N次/分鐘/小時/天,度量A往往會有所增加,而度量B往往會下降,但在這個特殊時期,這種趨勢逆轉了。「在這種情況下,您需要爲「每N次提交」或「每N小時」或什麼都定義自己的度量標準,可能是通過運行git rev-list
並使用原始提交ID從此開始。
一般來說,git rev-list
是處理這一工具,而事實上,git bisect
本身使用git rev-list
與--bisect
(見the documentation的詳細信息;請注意,它存儲在refs/bisect
命名空間名稱,以便它可以被反覆使用)。 rev-list命令有幾個額外的平分變體,您可能會覺得有用。
與'git-bisect'類似的聲音 – Jamesking56
是的,但我想手動執行它不是爲了搜索bug,只是爲了靜態分析代碼。我沒有一個壞的或好的條件。 –
如果你從分支的頂端開始,你可以倒退。請參閱http://stackoverflow.com/questions/16062358/referring-to-the-previous-next-commit-in-git您可以記住您在列表中遇到的提交,然後通過反向工作。請注意,提交可以同時擁有多個祖先和後繼,所以next和prev沒有很好的定義。 – masterxilo