簡體   English   中英

查找與某個“提交數”匹配的所有git提交

[英]Find all git commits matching a certain 'count of commits'

我使用以下命令來生成類似於svn(Subversion)“修訂號”的ID(提交次數)。

git rev-list HEAD | wc -l
# With newer git versions you can also use:
git rev-list HEAD --count

我知道這與svn中的不完全相同,尤其是我的Git-ID不一定是唯一的。 對於我的目的而言,它仍然足夠好(快速區分兩個版本中的哪個版本是最近的)。

現在我的問題是:

假設我有ID 2340,如何找到與此ID(提交次數)匹配的所有Git修訂版(哈希)?

編輯(示例)

*   9c4365c count: 5
|\
| |
| |   
| * b1a9954 count: 2
| |
| |
| |   
* | 7e8831a count: 3
| |
| |
| |   
* | e8cabc4 count: 2
|/
|
|  
* 9ae0137 count: 1

對於ID(計數)2,我想獲取e8cabc4和b1a9954。

一個非常低效的解決方案是遍歷所有提交並檢查該提交的“計數”。 如果匹配,則將其添加到解決方案中。

值得的是,這是我在問題中提到的低效解決方案。

#!/bin/bash

MY_COUNT=2340

for COMMIT in `git rev-list HEAD`
do
    CCOUNT=`git rev-list ${COMMIT} --count`
    if [ "${CCOUNT}" == "${MY_COUNT}" ]
    then
        echo $COMMIT
    fi
done

對於具有3000次提交的存儲庫,大約需要30秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM