有没有办法知道如果我执行git push命令会推送什么?
我所描绘的是类似于Github的“拉请求”功能的“文件更改”选项卡。当我发出一个拉请求时,我可以看看如果他们接受我的拉请求,会拉进什么:
命令行是可以的,但我更喜欢某种图形用户界面(比如上面的截图)。
有没有办法知道如果我执行git push命令会推送什么?
我所描绘的是类似于Github的“拉请求”功能的“文件更改”选项卡。当我发出一个拉请求时,我可以看看如果他们接受我的拉请求,会拉进什么:
命令行是可以的,但我更喜欢某种图形用户界面(比如上面的截图)。
当前回答
你可以通过以下方式列出提交:
git cherry -v
然后与下面的命令进行比较,其中^的数量等于提交的数量(在示例中是2次提交):
git diff HEAD^^
其他回答
尝试git diff origin/master..Master(假设原点/ Master是您的上游)。与git push -dry-run不同的是,即使你没有对上游的写权限,这仍然可以工作。
你可以通过以下方式列出提交:
git cherry -v
然后与下面的命令进行比较,其中^的数量等于提交的数量(在示例中是2次提交):
git diff HEAD^^
如果您有远程写权限
git push --dry-run
如果您没有远程写权限
git diff --stat HEAD remote/branch
要查看哪些文件被更改,并查看与主分支相比的实际代码更改,您可以使用:
git diff --stat --patch origin master
注意:如果你碰巧使用任何Intellij ide,那么你可以右键单击你的顶级项目,选择Git > Compare with branch >,然后选择你想要的来源,例如origin/master。在将出现的文件树中,您可以双击文件来查看可视化的差异。与上面的命令行选项不同,您可以从差异窗口编辑您的本地版本。
总有演练:
git push --dry-run
它会做所有事情,除了实际发送数据。
如果你想要一个更图形化的视图,你有很多选择。
Tig和git附带的gitk脚本都显示本地副本的当前分支和远程或源文件的分支。
任何在原点之后的提交都是会被推送的提交。
在你想要推送的分支中,输入gitk&从shell打开gitk,然后查看远程上的内容和你将要推送到远程的内容之间的差异,选择本地未推送提交,右键单击远程,选择“Diff this -> selected”: