【问题标题】:Need a git command which gives only my source branch(working branch) changes需要一个仅提供我的源分支(工作分支)更改的 git 命令
【发布时间】:2019-10-10 23:06:31
【问题描述】:

我想使用 powershell 命令列出在 Git/GitHub 中的 PR 中更改的所有文件的名称。

我尝试了各种“git diff --name-only”命令,这些命令为我提供了我的源分支(工作分支)和目标分支(主分支)之间的提交列表。 但我需要一个仅列出 PULL REQUEST 中更改的文件的命令。

谁能帮帮我。

【问题讨论】:

    标签: git powershell azure-devops azure-pipelines


    【解决方案1】:

    "git log --name-only" 命令将在分支中显示更改的文件。如果你只想检查某个提交,你可以使用“git show 123abc...(commit ID) --name-only”。

    您还可以使用“git log --stat”命令来获取有关更改文件的更多详细信息。

    【讨论】:

    • 注意三个点。
    • 我已经尝试过上面的命令,它给了我提交给主人的所有不同的 PR 信息。你能给我一个命令,它给出一个特定 PR 中更改的所有文件名称的列表。
    • 对于一个特定的 PR,如果你已经知道它的 commit id,使用 git show 然后加上这个 commit id,它应该只列出这个 PR。
    【解决方案2】:

    一般情况下,您可以使用以下命令列出在任意两次提交 git diff --name-only 之间发生更改的文件。

    因此,如果您的所有分支都源自 master,那么您可以使用以下命令来获取更改。

    git --no-pager diff --name-only sourcebranchname $(git merge-base {sourcebranchname} {targetbranchname})
    

    例如,我创建了一个从 branch1 到 master 的 Pull 请求,那么命令应该如下所示。

    git --no-pager diff --name-only branch1 $(git merge-base branch1 master)
    

    【讨论】:

    • Frank Wang-MSFT 我已经尝试过上述命令,如果在提交 PR 后对 master 进行了更改,此命令也包括这些更改。 (我不希望包含主更改)。你能给我一个命令,它给出一个特定 PR 中更改的所有文件的列表。
    • 没有 git 命令可以直接显示 PR 更改文件。我用您描述的情况测试了上述命令,但我没有得到主更改。另外,我在本地测试过这个,PR分支都是从master上剪下来的。
    猜你喜欢
    • 1970-01-01
    • 2018-06-22
    • 2011-06-22
    • 2019-12-22
    • 2015-12-26
    • 2018-12-19
    • 2023-04-03
    • 2012-07-13
    • 2014-06-08
    相关资源
    最近更新 更多