【问题标题】:Getting the difference between two repositories at specified commits在指定提交时获取两个存储库之间的差异
【发布时间】:2021-06-23 02:41:24
【问题描述】:

我正在尝试比较给定提交时两个存储库之间的差异。我遇到的最接近的StackOverflow post 建议添加一个仓库作为远程仓库,以便使用以下命令与工作仓库进行比较:

git remote add -f b path/to/repo_b.git
git remote update
git diff master remotes/b/master
git remote rm b

但是,如果我想与 repo_b(而不仅仅是一个分支)的特定过去提交点进行比较,我该怎么做?

【问题讨论】:

    标签: git git-diff


    【解决方案1】:

    只需使用提交哈希而不是 git diff 中的分支名称。例如:

    git remote add -f b path/to/repo_b.git
    git remote update
    git diff 547cd49 600cd49
    git remote rm b
    

    提交哈希在分支(和宇宙)中是唯一的

    【讨论】:

    • 提交哈希在整个宇宙中都是独一无二的!
    • 只是为了了解git如何推断600cd49来自远程b。可能有多个遥控器吧?
    • 这些也是独一无二的。请参阅@matt 评论,我编辑了我的答案以明确说明
    • @NasifImtiazOhi:顺便说一句,这就是任何提交的任何部分都不能改变的原因。提交的哈希 ID 现在分配给 that 提交。您可以使用而不是原始提交进行新的和改进的提交,但您不能更改原始提交,因为它现在可能会由于获取或推送而出现在其他 Git 存储库中。
    • @NasifImtiazOhi 它没有“推断”任何东西。要么我们在某处有600cd49,要么没有。我们如何获得它并不重要。如果我们确实拥有它,那么“在”什么就是“在”什么,无论它来自哪里,我们可以将它与任何其他提交进行比较。
    猜你喜欢
    • 2010-12-30
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多