这是什么文件,我在使用gitmerge工具解决冲突时得到的?

hl0ma9xz  于 11个月前  发布在  Git
关注(0)|答案(1)|浏览(108)

gitmergetool是如何工作的。我在做git merge的时候有冲突,现在我想摆脱这些合并冲突,我正在浏览SO以获得一些关于如何做的信息,有一个使用git mergetool的建议,我从来没有使用过git merge工具,但当我使用git merge工具时,我会为自己的文件获取一些本地,远程和备份文件,然后我会有一些类似的东西

#*merge*#30260IgX#  #*merge*#48883jX#

字符串
这个文件(如果我可以这么说)意味着什么,我怎么能摆脱它,因为我不知道它是什么.我不想把这个提交给我的仓库,任何建议或工作,也将不胜感激,如果有人可以指出我使用git merge tool适当的资源。
谢谢!

ix0qys7i

ix0qys7i1#

  • “与“git mergetool”合并”是一个起点,difftool和mergetool背后的一般理论在:

“如何使用visual diff程序查看'git diff'输出?”

  • 也就是说,对于某些标准diff/merge工具,它甚至更简单:

An easier way to set up diff and merge tools for Git on Windows
首先安装**KDiff3**。
它不是世界上最漂亮的GUI,但是一旦你习惯了它,它就非常有用,并且具有与Git自然工作的额外优势,而无需进行太多配置。
第二步,打开.gitconfig(在主目录C:\Users\(username)或旧的Documents and Settings路径下),并添加以下内容:

[diff]
    tool = kdiff3

[merge]
    tool = kdiff3

[mergetool "kdiff3"]
    path = C:/Program Files/KDiff3/kdiff3.exe
    keepBackup = false
    trustExitCode = false

字符串
现在所有对git difftoolgit mergetool的调用都默认为KDiff 3。
这是所有你需要的是好去!
比那些 Package 纸简单多了。
你会发现一个good tutorial here(在优秀的**gitguru**):

git mergetool

git mergetool命令允许将这些工具集成到合并过程中。在确定合并冲突后运行,它会循环遍历需要解决的文件,并为指定的工具提供调用三向合并所需的版本信息。
git mergetool已经包含了对许多开源和免费提供的合并工具的支持:kdiff 3、tkdiff、meld、xxdiff、emerge、vimdiff、gvimdiff、ecmerge和opendiff。
如果存在命令行调用,则可以通过自定义配置设置添加对其他工具(包括DiffMerge和Araxis Merge)的支持:

git config --global mergetool.[tool].cmd [command-line call]
git config --global mergetool.[tool].trustExitCode [true|false]


使用了“--global“标志,因此该设置将应用于所有Git存储库。
命令行需要接受以下作为参数传入的文件变量:

  • $LOCAL-当前分支版本
  • $REMOTE-要合并的版本
  • $BASE-公共祖先
  • $MERGED-写入结果的文件

git mergetool将创建临时文件形式的版本,并在执行工具命令行之前适当地设置变量。
如果工具在成功或不成功的合并后返回正确的退出代码,则trustExitCode设置可以设置为true。
否则,请将其设置为false,这样您将收到提示,说明文件的合并冲突是否已解决。

执行冲突合并

使用mergetool进行合并的命令序列如下

git merge
git mergetool -t [tool]
git add .
git commit


可以通过merge.tool设置指定默认工具

git config --global merge.tool [tool]


这将允许您简单地调用

git mergetool


x1c 0d1x的数据

相关问题