【问题标题】:git difftool directories between branches分支之间的 git difftool 目录
【发布时间】:2018-01-10 12:40:32
【问题描述】:

这个问题包含两个分开但密切相关的问题:

首先; 我正在尝试比较位于不同分支(THIS_BRANCH、OTHER_BRANCH)中的两个文件

文件 (file.txt) 路径已在分支之间移动。 THIS_PATH\file.txt 和 OTHER_PATH\file.txt(其中 THIS_PATH!=OTHER_PATH)

执行 git difftool THIS_BRANCH OTHER_BRANCH -- THIS_PATH\file.txt 这(预期)会产生将文件与不存在的文件进行比较的结果,本质上是将它与什么都没有进行比较。

如何使用 git difftool 来做到这一点? [我正在使用超越比较(已经配置为我的 git difftool)]

第二; 同样,我想比较来自两个不同分支(THIS_DIR,OTHER_DIR)的两个目录,它们具有不同的路径(THIS_PATH,OTHER_PATH)。再次,使用超越比较作为我的差异工具。这怎么可能实现?

欣赏它。

【问题讨论】:

    标签: git git-diff beyondcompare git-difftool


    【解决方案1】:

    你可以运行git difftool [options] <blob> <blob>

    其中<blob> 可以是<rev>:<path><path> 应该是相对于 repo 根目录的。

    例如

    git difftool @:some/dir @^:some/other_dir
    

    【讨论】:

    • 谢谢!我知道如何使用它来比较两个特定文件(回答第一个问题)。但是当我尝试比较两个文件夹时,它只是对第一个分支下的每个文件进行迭代。特别是对于超越比较,有一个方便的工具可以在目录之间进行比较。有没有办法让 git difftool 将整个目录(一次)加载到 BC?谢谢你的回答!
    • 也许您可以尝试将-d 选项改为git difftool。我不知道任何其他解决方案。
    • 当您使用git difftool -dgit difftool --dir-diff 时,git 会在 macOS 或 Linux 上创建指向工作树的符号链接(Windows 默认为无符号链接)。 BC 的默认行为不会将文件与符号链接对齐,要强制它们对齐,请单击 Rules 工具栏按钮,转到 Handling 选项卡,然后选中 Follow symbolic链接.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多