有没有一种很好的方法来解释如何在Git中解决合并冲突?
在Git中查看和编辑合并的最佳工具是什么?我想得到一个3向合并视图,在单独的面板中有"我的","他们的"和"祖先",以及第四个"输出"面板.
此外,调用所述工具的说明也很棒.(我仍然没有弄清楚如何以这样的方式启动kdiff3,它不会给我一个错误.)
我的操作系统是Ubuntu.
我正试图执行我的第一次Git合并(令人兴奋!),但无法在Windows 7上识别Git Gui(0.13GITGUI,来自Git 1.7.4.msysgit.0)以识别TortoiseMerge(1.6.11.20210 x64).基于对类似问题的回答,我进行了以下配置更改:
$ git config --global merge.tool tortoisemerge
$ git config --global mergetool.tortoisemerge.cmd 'TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"'
$ git config --global --list
...snip...
merge.tool=tortoisemerge
mergetool.tortoisemerge.cmd=TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"
$
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我启动Git Gui并尝试"运行合并工具"时,我收到错误Unsupported merge tool 'tortoisemerge'.
谁能告诉我我做错了什么?这是我的相关部分~/.gitconfig:
[merge]
tool = tortoisemerge
[mergetool "tortoisemerge"]
cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
Run Code Online (Sandbox Code Playgroud)
更新
git mergetool从命令行运行时,TortoiseMerge可以正常使用上面的配置.似乎只有Git Gui有问题.: - /
我需要将/DEF:c:\filepath\myLib.def"命令行选项从bash脚本传递给MS编译器/链接器.该路径是作为构建过程的一部分由bash脚本生成的.基本上,我的脚本的参数通行证是:
-DEF:/c/filepath/myLib.def
Run Code Online (Sandbox Code Playgroud)
MSYS路径转换无法正确处理它,因为它不了解/DEF:部分.如果我这样做的话
-DEF=/c/filepath/myLib.def
Run Code Online (Sandbox Code Playgroud)
但是ms工具不理解这个参数.简而言之,在MSYS bash中编写该参数的正确方法是什么,以便将其转换为正确的参数?
在cygwin上我可以使用cygpath,但没有相应的,因为msys的某些人认为它不需要(即使cygwin的脚本使用cygpath).
我想用git使用p4merge,但我得到:
启动p4merge时出错:"path/myFile"是(或指向)无效文件(这列出了文件的BASE,LOCAL,REMOTE和标准版本).
Git告诉我有关冲突然后它询问我是否要启动mergetool配置(p4merge)然后我得到上面的错误.
附加说明:它发生在任何文件!
有关这是什么以及如何解决它的任何线索?
我的想法是,我想通过git共享文档
我想过使用Text Document(看起来像docx,功能上的odt),可以使用任何文本编辑器(非二进制)进行编辑.哪里可以找到这样的东西?
更好的解决方案?
我如何配置git以p4merge用作我的mergetool?
接下来是我现在的情况:
$ git --version
git version 1.8.3.msysgit.0
$ git mergetool
This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
tortoisemerge emerge vimdiff
No known merge tool is available.
Run Code Online (Sandbox Code Playgroud) 我想创建一个批处理文件,初始化我的.gitconfig文件中的所有键/值.
我试图从cmd设置以下部分时遇到麻烦:
[mergetool "p4merge"]
cmd = p4merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
Run Code Online (Sandbox Code Playgroud)
我试过了:
git config --global mergetool.p4merge.cmd "p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Run Code Online (Sandbox Code Playgroud)
但结果是:
[mergetool "p4merge"]
cmd = p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
Run Code Online (Sandbox Code Playgroud)
我应该如何从cmd中删除双引号?
我知道我们应该使用命令“git mergetool”来解决冲突并使用“git difftool”来比较更改。但是我们如何在github windows中将SourceGear DiffMerge设置为github mergetool和difftool呢?