【问题标题】:git diff for custom 2 files outside of any repository?git diff 用于任何存储库之外的自定义 2 文件?
【发布时间】:2018-06-16 15:18:50
【问题描述】:

我需要git diff 功能来处理我在任何存储库之外拥有的 2 个文件。有没有办法做到这一点? git diff --file1 /path/file1.txt --file2 /path/file2.txt 之类的东西如果不是,有什么替代解决方案?

【问题讨论】:

    标签: git comparison diff git-diff


    【解决方案1】:

    答案就在the git diff documentation(虽然我承认很容易错过):

    git diff [] --no-index [--]

      这种形式是比较文件系统上给定的两个路径。在 Git 控制的工作树中运行命令且至少有一个路径指向工作树之外时,或者在 Git 控制的工作树之外运行命令时,您可以省略 --no-index 选项。

    您的案例可能属于“--no-index 是可选的”类别,但即使它是可选的,您仍然可以使用它,所以:

    git diff --no-index /path/file1.txt /path/file2.txt
    

    将使用 Git 的差异。

    【讨论】:

    • 我使用 v 2.21.0,我不需要指定 --no-index 来使用 git diff. 我根本不使用 diff 但我发现这更有用,因为它为您提供颜色输出,您也可以在 Windows 上使用类似的东西。
    • @dtc:很难准确定义您何时确实需要--no-index。我在上面要说明的一点是,您可以始终将它用于这种情况。如果你不需要它,很好,但如果你确实需要它来处理一些罕见的情况,并且你不使用它,Git 会抱怨你。因此,您可能想要创建一个别名或提供标志的东西,这样您就不必担心它。
    【解决方案2】:

    如果这两个文件确实在任何 Git 存储库之外,那么 Git 实际上对这些文件一无所知,因此 git diff 将无法工作。但是,常规的 Linux diff 命令应该可以工作。所以不要这样做:

    git diff /path/to/file1.txt /path/to/file2.txt
    

    这样做:

    diff /path/to/file1.txt /path/to/file2.txt
    

    【讨论】:

    • diff 不是git diff,所以这个答案没有帮助。
    • 2 files that I have outside of any repository ...如果我没看错的话,这个问题甚至与 Git 无关。
    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 2018-12-27
    • 1970-01-01
    • 2016-05-05
    • 2015-01-13
    • 2012-08-09
    • 1970-01-01
    相关资源
    最近更新 更多