查找与特定'count of commits'匹配的所有 git 提交



i使用以下命令生成ID(Count of Count)类似于SVN(subversion)'修订号码'。

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

我知道这与SVN中的不完全相同,尤其是我的git-ids并不一定是唯一的。仍然足以满足我的目的(快速区分两种版本中的哪个是最近的)。

现在我的问题:

假设我有ID 2340我如何找到与此ID相匹配的所有git修订(哈希)?

编辑(示例)

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

对于ID(count)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秒。

相关内容

  • 没有找到相关文章

最新更新