git - 将未版本控制的源与 git 存储库相匹配

标签 git

我有一个遗留项目,还包含多个开源库的源代码。不幸的是,一些库只是简单的快照,没有任何修订信息。 我正在寻找一种方法来识别库存储库中的匹配提交(git 驱动)。

到目前为止,我一直在做的是对单个文件进行某种心理“平分”更改,但这些文件经常在提交之间移动,并且跟踪结果相当困难。

可以利用的先决条件:

  • 存在完全匹配
  • 一些启发式时间间隔信息可能适用
  • 项目不太大(<100kB C++ 代码)

最佳答案

为什么不执行以下操作:

  1. 克隆库的存储库

  2. 用您手头的版本覆盖工作树

  3. 针对所有提交运行 git diff:

    #!/usr/bin/env bash
    for rev in $(git rev-list --all)
    do
        if git diff --exit-code $rev &> /dev/null
        then
            echo $rev
        fi
    done
    

即使没有完全匹配,也可以轻松增强此过程以搜索与您的版本差异最小的修订版。

关于git - 将未版本控制的源与 git 存储库相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39747736/

相关文章:

git - 无需 checkout 即可下载 Git LFS 文件

git - 无法访问 macos 上的 bitbucket 存储库

git - 如何在 github 上托管的其他人的项目中修补代码

git - 查看文件的第 N 个先前版本

git - 当我切换分支时,我未提交的更改将被携带并 merge

git - 使用git扫描源代码生成待办事项列表等

git - 如何让多个用户访问 1 个 git 存储库?

git - 有没有办法将 azure synapse studio 连接到 bitbucket repo?

git Whatchanged - -M 做什么?

Git 克隆 : Unknown SSL protocol error in connection to github. com:443