有没有办法知道如果我执行git push命令会推送什么?
我所描绘的是类似于Github的“拉请求”功能的“文件更改”选项卡。当我发出一个拉请求时,我可以看看如果他们接受我的拉请求,会拉进什么:
命令行是可以的,但我更喜欢某种图形用户界面(比如上面的截图)。
有没有办法知道如果我执行git push命令会推送什么?
我所描绘的是类似于Github的“拉请求”功能的“文件更改”选项卡。当我发出一个拉请求时,我可以看看如果他们接受我的拉请求,会拉进什么:
命令行是可以的,但我更喜欢某种图形用户界面(比如上面的截图)。
当前回答
对于要推送的文件列表,运行:
git diff --stat --cached [remote/branch]
例子:
git diff --stat --cached origin/master
对于要推送的文件的代码差异,运行:
git diff [remote repo/branch]
要查看将要更改的文件的完整文件路径,运行:
git diff --numstat [remote repo/branch]
如果你想在GUI中看到这些差异,你需要为此配置git。看我如何查看'git diff'输出与一个可视化的diff程序?
其他回答
只是补充我的意见… 我想在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 push --dry-run
如果您没有远程写权限
git diff --stat HEAD remote/branch
在git commit -m "{your commit message}"之后,你会在推送之前得到一个提交散列。 所以你可以通过运行下面的命令看到你要用git推送什么:
git diff origin/{your_branch_name} commit hash
宇宙摧毁了一切
在将本地版本推送到远程回购(类似于演练中的推送)之前,比较本地版本的一种方法是:
使用TortoiseGit: 右键单击根文件夹项目> TortoiseGit >差异与以前的版本> 对于版本2选择refs/remotes/origin/master
你可能需要运行git difftool origin/master....这将显示当前分支上还没有在原点/主分支上的内容的统一差异,并在您选择的图形差异工具中显示它。要保持最新,请先运行git fetch。