合并后,我想使用git mergetool来解决问题,但它失败了我指定的任何工具:
git mergetool
merge tool candidates: opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse ecmerge p4merge araxis bc3 vimdiff emerge
Merging:
main.c
Normal merge conflict for 'main.c':
{local}: modified file
{remote}: modified file
Hit return to start merge resolution tool (kdiff3):
merge of main.c failed
我指定的工具似乎根本没有启动.
输出
git config --list
merge.tool=kdiff3 core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true
我觉得我接近这一切都错了.
我作为团队的一部分工作,我们使用git.现在,当我从我的团队中提取更新时,显然会不时发生冲突 - git似乎在文件中插入了大量文本,这是不好的.
无论如何,有没有一个体面的方法来管理这些冲突(我在Windows上).
我使用winmerge,但从我所看到的,它只能比较2个目录.它使解决冲突变得轻而易举,但要求我在2个不同的位置拥有2个源的状态.
有没有人知道更好的方法来做这个或如何整合这两个?
从源代码中删除冲突标记的快速方法是什么?
我刚刚合并了一些更改,现在我有很多文件存在冲突.
我开始手动删除它们.但是,这需要花费太多时间.
有没有办法git可以自动化这个?
我只想保留所有HEAD并丢弃所有其余的.
<<<<<<< HEAD
.
.
.
.
=======
.
.
.
.
>>>>>>> ffa5c899d36e779c23cff8b33f48f2ab95ef08c8
Run Code Online (Sandbox Code Playgroud) 我正在关注Git配置页面中的文档并尝试将其应用到我的Windows 7环境中.当我运行说"git diff file0"时,我在P4Merge中收到错误:
Errors: '/tmp/cH9ccM_file0' is (or points to) an invalid file.
Run Code Online (Sandbox Code Playgroud)
这是一个真实的陈述.我没有名为"/ tmp"的目录.我已经检查了C:\ tmp,C:\ cygwin\tmp和%PROGRAMFILES%\ Git\tmp.
有关如何将此目录更改为我所拥有的内容的任何想法?
编辑:
附加信息.最终,我正在尝试让WinMerge(或任何外部程序)工作.我之前选择使用P4Merge,因为我无法让WinMerge工作,所以我决定使用上述文章中使用的程序.
以下是我的.gitconfig的相关部分:
[merge]
tool = extMerge
[mergetool "extMerge"]
cmd = extMerge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
trustExitCode = false
[diff]
external = extDiff
Run Code Online (Sandbox Code Playgroud)
extDiff脚本:
#!/usr/bin/sh
# extDiff
# Wrapper for using an external diff tool in Git
echo "File 1: $2"
echo "File 2: $5"
/usr/local/bin/extMerge "$2" "$5"
Run Code Online (Sandbox Code Playgroud)
extMerge脚本:
#!/usr/bin/sh
echo $*
/c/Program\ Files\ \(x86\)/WinMerge/WinMergeU.exe $*
Run Code Online (Sandbox Code Playgroud)
因此,如果我更改名为index.html的文件,并运行git diff,则结果如下:
File …Run Code Online (Sandbox Code Playgroud)