我想要一个尚未合并到master的分支中的所有更改的差异.
我试过了:
git diff master
git diff branch..master
git diff branch...master
Run Code Online (Sandbox Code Playgroud)
但是,在每种情况下,diff都包含master中尚未合并到我的分支中的内容.
有没有办法在我的分支和主人之间做一个差异,排除了尚未合并到我的分支的主人的变化呢?
我的一位同事检查了Git的一些变化,我想确切地看到这些变化是什么.换句话说,他的登记入住与其父母之间的差异.
对我来说合乎逻辑的是运行这个命令:
git diff shaOfHisCheckIn
Run Code Online (Sandbox Code Playgroud)
但这没效果.它似乎显示了SHA-1哈希与我当前工作副本之间的差异.
显示给定SHA-1哈希与其父级之间差异的正确命令是什么?
有没有人让Meld在Windows上与Git合作?我试图让它工作,我没有成功.
我安装了Meld,当我从命令行调用它时有两个文件作为参数,它们很好地区分它们以便正确安装Meld.但是我无法使用Git(Git Diff).我使用的git version 1.8.1.msysgit.1是Git 版本.
我尝试了几件事:我创建了一个shell脚本,meld.sh:
#!/bin/bash
meld.exe "$2" "$5"
echo $2
echo $5
Run Code Online (Sandbox Code Playgroud)
并从Git中使用它:
[diff]
tool = meld
[difftool "meld"]
cmd = \"D:\\meld.sh\"
Run Code Online (Sandbox Code Playgroud)
我试着把它添加为像这样的difftool:
[diff]
tool = meld
[difftool "meld"]
cmd = \"C:\\Program Files (x86)\\Meld\\meld\\meld.exe\"
Run Code Online (Sandbox Code Playgroud)
或者像这样:
[diff]
tool = meld
[difftool "meld"]
cmd = '\"/c/Program Files (x86)/Meld/meld/meld.exe\" $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED'
Run Code Online (Sandbox Code Playgroud)
但它似乎真的不起作用.我还试图从我的shell脚本中回显第二个($ 2)和第五个($ 5)参数,没有输出.我还尝试过以下几种方式使用批处理脚本:
meld.exe %2 %5
Run Code Online (Sandbox Code Playgroud)
要么
meld.exe %~2 %~5
Run Code Online (Sandbox Code Playgroud)
但它确实不起作用......如何在传播Git到Meld时传递文件的两个版本?这很烦人......
git diff和 和有git difftool什么区别?
我看到我可以编辑 git 的配置文件以轻松更改调用时使用的外部工具git difftool,并且似乎将git diff补丁输出到命令行。
我为什么要使用git diff?