有没有办法知道如果我执行git push命令会推送什么?

我所描绘的是类似于Github的“拉请求”功能的“文件更改”选项卡。当我发出一个拉请求时,我可以看看如果他们接受我的拉请求,会拉进什么:

命令行是可以的,但我更喜欢某种图形用户界面(比如上面的截图)。


当前回答

尝试git diff origin/master..Master(假设原点/ Master是您的上游)。与git push -dry-run不同的是,即使你没有对上游的写权限,这仍然可以工作。

其他回答

你可能需要运行git difftool origin/master....这将显示当前分支上还没有在原点/主分支上的内容的统一差异,并在您选择的图形差异工具中显示它。要保持最新,请先运行git fetch。

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

git cherry -v

在sha1旁边显示提交主题。

如果您有远程写权限

git push --dry-run

如果您没有远程写权限

git diff --stat HEAD remote/branch

只是补充我的意见… 我想在gitlab运行器上运行gitlab管道中的作业时实现这一点。 最好的方法是使用这个脚本:

git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA

同样在我的情况下,我想通过扩展过滤文件,以实现这一点,我使用:

git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA '*.py'

之后,你可以把这个列表转发到其他地方,也许是一个linter;)

希望这能帮助到一些人。

使用git gui,在那里你可以看到在实际提交中所更改的列表。你也可以使用gitk,它为reflogs提供了一个简单的界面。只要比较一下遥控器/…和主人看,什么都会推。它提供了一个类似于截图的界面。

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