【问题标题】:Git diff between master and all files changed in a pull request主文件和拉取请求中更改的所有文件之间的 Git 差异
【发布时间】:2015-04-15 05:32:24
【问题描述】:

我有两个分支:mastermy_branch。 在处理my_branch 时,我对 N 个文件 file1.cpp、file2.cpp ... fileN.cpp 进行了更改并创建了一个拉取请求。请注意,我的更改跨越多个提交(例如:,我在第一次提交中将 file1.cpp 更改为 file3.cpp,在下一次提交中更改了 N-3 个文件)。同时,Alice、Bob 和 Charlie 也将他们的更改推送到 master,包括一些涉及这 N 个文件的更改。然后,我执行 git pull(在 master 上)以从远程仓库获取最新的 master。现在,我想准确查看my_branchmaster 中哪些文件不同。请注意,我只关心 my_branch 中我对其进行更改/提交的 N 个文件(在我的拉取请求的文件更改部分中可见)。我不在乎其他数千个可能已被其他人更改的文件。一种方法是:

git diff master my_branch file1.cpp
git diff master my_branch file2.cpp
...
git diff master my_branch fileN.cpp

有没有更好的方法来做到这一点,而不是为每个文件手动输入差异?

注意:

git diff master my_branch

没有帮助,因为它列出了我实际更改的 N 个文件之外的一千个其他文件。

【问题讨论】:

    标签: git github version-control


    【解决方案1】:

    如果您没有任何需要引用的字符(空格等),您可以这样做:

    git diff master mybranch -- $(git diff --name-only master...mybranch)
    

    如果您确实有需要引用的文件,那么您将不得不退回到以下内容:

    git diff -z --name-only master...mybranch | xargs -0 git diff master mybranch --
    

    【讨论】:

      【解决方案2】:

      master 分支合并到你的分支中,然后区分两个分支。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-07
        • 2019-03-07
        • 1970-01-01
        • 2020-01-18
        • 2020-06-09
        • 2012-03-24
        • 2013-10-08
        • 1970-01-01
        相关资源
        最近更新 更多