我在branchA中有FileA,在branchB中有FileB。
问题是我一次只能访问一个文件。我希望能够比较FileMerge或meld的文件,因为他们是唯一的diffTools whichI找到Mac。
如何通过meld/files进行比较合并这两个文件
解决:第一个开发的问题: FileMerge不允许标准输入
Masi:您可以使用opendiff to allow FileMerge从标准输入中获取文件。所以下一个问题是如何让git的diff工具使用opendiff。
的第二个开发问题:使Git的diff工具在Mac中使用opendiff
发布于 2009-05-27 19:22:49
您可以使用"git mergetool“进行合并,在现代git (即1.6.3版及更高版本)中使用"git difftool”使用图形工具进行比较。当然,您必须首先配置它们,但它们会做一些自动检测(当然,带有一些硬编码的首选项),如果我没记错的话,还内置了对opendiff的支持。
当然,您也可以像使用普通的"git diff“一样使用图形工具(opendiff / FileMerge),例如
prompt> git difftool somebranch:UNREADME otherbranch:README
发布于 2009-05-27 17:02:33
git支持将分支名称作为存储库路径的一部分。例如,如果您的存储库中有以下文件,README
仅适用于master
,UNREADME
仅适用于branch
master:README
branch:UNREADME
您可以通过git使用以下命令来比较它们:
git diff branch:UNREADME master:README
您可以使用git show
将存储库工件转换为标准输出
git show branch1:UNREADME
因此,如果您的外部diff实用程序可以在bash提示符下接收两个文件,则可以使用以下命令来比较它们:
diff-command <(git show branch1:UNREADME) <(git show master:README)
其中,<(...)
bash语法获取包含的命令的输出,在管道中运行它,并将管道的文件路径放在命令行上。
发布于 2009-05-27 16:54:48
例如,如果您当前正在签出到branchA,则可以使用以下命令:
git diff branchB path/to/common/file/between/branches.txt
然后,如果您想要更改的子集,可以编辑diff,或者将其保留为原样,然后将diff作为补丁进行git apply
。至于一个能做到这一点的GUI工具,希望其他人能给出一个建议。
https://stackoverflow.com/questions/916822
复制相似问题