【发布时间】:2016-04-24 18:45:57
【问题描述】:
我想创建一个工具,在克隆所述存储库之前检查我是否已经拥有远程存储库的本地克隆。为此,我需要一种测试 B 是否与存储库 A 相同的方法——我想我的意思是它们具有可合并的历史记录。 B 的命名可能与 A 不同,并且可能有额外的分支——通常的用例。
有没有办法做到这一点?我有一个初步的想法如何做到这一点,但我想也许这里有人有一个明确的答案。
初步设想
获取分支列表并搜索常见分支(通过哈希)。然后对于公共分支,检查初始提交是否相同(通过哈希)。那时我会说“足够好”。我想我很好,除非有人一直在弄乱历史,我愿意忽略这个用例。不过,要做到这一点,我需要一种从远程存储库获取分支和提交信息的方法,而无需进行克隆。我可以使用 ssh 和 bash 解决这个问题,但最好使用 git-only 解决方案。
也欢迎对不成熟的想法提出反馈。
为什么这不是Git repository unique id 的重复项
引用的问题是寻找一个唯一的存储库 id,或一种创建方法。不存在这样的野兽,即使它确实存在,在这里是否相关也是值得怀疑的,因为我想确定两个存储库是否具有可合并的历史(即我可以在两者之间获取和合并) - 一个稍微更好定义的问题.我愿意忽略用户修改历史记录的可能性,但也很想听听如何处理这种情况。
【问题讨论】:
-
请张贴您的“初步想法”,以表明您确实考虑过这一点;有些人在提问之前并没有真正思考过:)
-
我阅读了上述问题及其答案——有一点重叠,但问题差异很大,以至于那里的答案并不真正适用。然而,我确实在那里得到了一个有用的提示——使用 git notes 的建议可能是一种有趣的方法。不过,我更喜欢非侵入式的方法。
-
如果你想要一个非侵入式的解决方案;我的方法只使用第一个 SHA-1 就可以正常工作(同样;如果你以后再也不改变它,但这不太可能)
标签: git uuid uniqueidentifier