我怎样才能看到我将要用git推动什么?

我怎样才能看到我将要用git推动什么?,git,Git,如果我执行了gitpush命令,有没有办法查看会推送什么 我所描绘的是Github“pull request”功能的“Files Changed”选项卡。当我发出拉取请求时,我可以查看,如果他们接受我的拉取请求,将拉取什么: 命令行还可以,但我更喜欢某种GUI(如上面的屏幕截图)。总是有干运行: git push --dry-run 除了实际发送数据外,它将执行所有操作 如果你想要一个更加图形化的视图,你有很多选择 git附带的gitk脚本既显示本地副本的当前分支,也显示远程副本或源副本的分支

如果我执行了
gitpush
命令,有没有办法查看会推送什么

我所描绘的是Github“pull request”功能的“Files Changed”选项卡。当我发出拉取请求时,我可以查看,如果他们接受我的拉取请求,将拉取什么:


命令行还可以,但我更喜欢某种GUI(如上面的屏幕截图)。

总是有干运行:

git push --dry-run
除了实际发送数据外,它将执行所有操作

如果你想要一个更加图形化的视图,你有很多选择

git附带的gitk脚本既显示本地副本的当前分支,也显示远程副本或源副本的分支

因此,在原点之后进行的任何提交都是将被推送的提交

通过键入
gitk&
,在您要推送的分支中从shell打开gitk,然后要查看远程上的内容与要推送到远程的内容之间的差异,请选择本地未推送的提交,右键单击远程并选择“Diff this->selected”:

使用
gitgui
,您可以在那里看到实际提交中更改的内容列表。您还可以使用
gitk
wich,它为重登录提供了一个简单的界面。只需比较一下
remotes/..
master
就可以看到将要推送的内容。它提供了一个类似于屏幕截图的界面


这两个程序都包含在git中。

要获取要推送的文件列表,请运行:

git diff --stat --cached [remote/branch]
git diff [remote repo/branch]
git diff --numstat [remote repo/branch]
例如:

要获取要推送的文件的代码差异,请运行:

git diff --stat --cached [remote/branch]
git diff [remote repo/branch]
git diff --numstat [remote repo/branch]
要查看将要更改的文件的完整文件路径,请运行:

git diff --stat --cached [remote/branch]
git diff [remote repo/branch]
git diff --numstat [remote repo/branch]

如果希望在GUI中看到这些差异,则需要为此配置git。请参阅。

您可能希望运行
git difftool origin/master…
。它应该显示当前分支上的统一差异,而当前分支上的统一差异尚未显示在原始/主分支上,并在您选择的图形差异工具中显示。要获得最新信息,请先运行git fetch。

如果您使用的是Mac OS X,我建议您使用Tower,这是一个很棒的程序,让我很高兴使用git。我现在不再需要记住终端命令,它提供了一个很好的GUI来查看、跟踪和解决文件中的差异

不,我和他们没有关系,我只是使用他们的软件,而且非常喜欢


在将本地版本推送到远程回购之前比较本地版本的一种方法(类似于推入式干运行):

使用龟甲:
右键单击根文件夹project>TortoiseGit>Diff with previous version>

对于版本2,选择
refs/remotes/origin/master
尝试
git diff origin/master..master
(假设
origin/master
是您的上游)。与git push--dry run不同,即使您没有上游的写入权限,此操作仍然有效。

要查看哪些文件发生了更改,并查看与您可以使用的
主分支相比的实际代码更改,请执行以下操作:

git diff --stat --patch origin master

注意:如果您碰巧使用了任何Intellij IDE,那么您可以右键单击顶级项目,选择Git与branch比较>,然后选择所需的源代码,例如
源代码/master
。在将出现的文件树中,您可以双击文件以查看视觉差异。与上面的命令行选项不同,您可以从差异窗口编辑本地版本。

只列出等待推送的提交: (这是你会记得的)

在SHA1旁边显示提交主题


您可以通过以下方式列出提交:

git cherry -v
然后与以下命令进行比较,^的数量等于提交的数量(在示例中为its 2提交):

  • 如果您对远程服务器具有写入权限
  • 如果您没有对远程服务器的写入权限

  • 再加上我的两分钱。。。 我想在gitlab runner上运行gitlab管道中的作业时实现这一点。 最好的方法是使用以下脚本:

    git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA
    
    在我的例子中,我还想按扩展名过滤文件,为此,我使用了:

    git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA '*.py'
    
    例如,在此之后,您可以将此列表转发到其他地方,可能是一根短绒;)

    希望这会对某人有所帮助。

    git commit-m“{your commit message}”
    之后,您将在推送之前获得一个提交哈希值。 因此,通过运行以下命令,您可以看到将要使用
    git
    推送的内容:

    git diff origin/{your_branch_name} commit hash
    

    例如:
    git diff origin/master c0e06d2
    只是想为PyCharm用户添加: 您可以右键单击文件-->Git->Compare with branch


    然后您可以选择master(或任何其他)

    git diff的两个变体——缓存而不提供commitish,只显示与HEAD的差异。我想你指的是git diff[--stat]--缓存的origin/master,假设origin的主分支是master,这并不是你想要的。您应该根据原点(
    git diff origin/master HEAD
    )区分
    HEAD,而不是索引。当且仅当您没有为提交而进行的任何更改时,对索引进行差异化将得到相同的结果。如果您进行了阶段性更改,这些更改将包含在差异中,但显然不会被推送,因为它们尚未提交。此答案需要编辑,以便在@Jefromi
    git diff的注释中包含信息--stat origin/master HEAD
    是正确的答案。@mfontani为我提供了正确的答案。我想检查我已经做出的承诺会推送什么,而不是如果我做出所有改变会推送什么
    git diff--cached[remote/branch]
    实现了以下技巧:)您可以使用{u}例如git diff{u}或git diff HEAD@{u}而不是键入origin/master。请注意,这仅在您有上游跟踪分支的情况下才有效