仅通过哈希将版本与 Git 存储库进行比较



我想将Dynamics Nav(2017)与Git集成。我不知道如何在 Git 中执行的一件事是如何检查数据库中的对象是否与 Git 存储库中的相应文件具有相同/较旧/更新的版本。

假设我在 Nav 中有 7500 个对象。它们中的每一个都导出到相应的文件并添加到 Git 存储库中。对于 Nav 中的每个对象,我存储已导入的文件的提交哈希。

问题是:

与指定存储库的HEAD相比,如何检查数据库中的哈希值是否位于/相同/来自另一个分支?请记住,我有 7500 个文件,并且为每个文件运行git log可能性能不佳。

如何检查数据库中的哈希值是否在后面/相同/来自 与指定存储库的 HEAD 相比的另一个分支?

您可以使用git log将给定版本与HEAD进行比较。命令使用如下:

要检查给定版本上是否存在提交,但在 HEAD 上不存在:

git log HEAD..<given hash value> --oneline

要检查 HEAD 上是否存在提交,但在给定版本上不存在:

git log <given hash value>..HEAD --oneline

然后,您可以通过两个命令的输出来决定给定版本是否落后/相同/领先于HEAD

  • 如果第一个命令 (git log HEAD..<given hash value> --oneline) 有输出,而第二个命令 (git log <given hash value>..HEAD --oneline) 没有输出,这意味着前面的给定版本HEAD

  • 如果第一个命令没有输出,而第二个命令有输出,则表示给定版本在HEAD后面

  • 如果第一个命令和第二个命令都没有输出,则表示给定的版本与HEAD相同
  • 如果第一个命令和第二个命令都有输出,这意味着给定版本在HEAD后面有一些提交,并且在HEAD之前提交

最新更新