我想在我的.gitconfig中包含一个包含github设置的文件 - 这可能吗?
我可以这样做:
[core]
include = /path/to/file
Run Code Online (Sandbox Code Playgroud) 虽然这个问题和答案中的大部分信息都可以在StackOverflow上获得,但它分布在许多页面以及其他错误或误导性的答案中.我花了一段时间拼凑出我想知道的一切.
有很多不同的程序可以用作你的git difftool和mergetool,对于哪个是最好的(意见,要求和操作系统明显不同)肯定没有共识.
Meld是一个流行的跨平台(UNIX/Linux,OSX,Windows)选择,如StackOverflow问题所示,什么是Git最好的可视化合并工具?其中提出梅尔德的答案的答案是其他任何工具的3倍以上.
我的答案将在下面回答以下两个问题:
注意:没有必要使用与difftool和mergetool相同的程序,可以为两者设置不同的程序.
我假设LOCAL和REMOTE文件正是他们的名字所暗示的,但什么是BASE和BACKUP?
我已经设定:
git config --global merge.tool meld
git config --global mergetool.meld.path c:/Progra~2/meld/bin/
Run Code Online (Sandbox Code Playgroud)
在"git mergetool"上写道:
Hit return to start merge resolution tool (meld):
The merge tool meld is not available as 'c:/Progra~2/meld/bin/'
Run Code Online (Sandbox Code Playgroud)
我也试过了:
结果是一样的.
当我转到C:/ Program files(x86)/ meld/bin /并运行时
python meld
Run Code Online (Sandbox Code Playgroud)
该工具运行.
我的.gitconfig文件中有以下内容:
[user]
name = myname
email = myname@gmail.com
[core]
autocrlf = true
excludesfile = C:\\Users\\myname\\Documents\\gitignore_global.txt
[diff]
tool = meld
[difftool "meld"]
cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
prompt = false
[merge]
tool = meld
[mergetool "meld"]
cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
[difftool "sourcetree"]
cmd = "C:/Program Files (x86)/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE"
[mergetool "sourcetree"]
cmd = 'C:/Program Files (x86)/Meld/meld/meld.exe' \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
trustExitCode = true
Run Code Online (Sandbox Code Playgroud)
在Sourcetree中,我有以下设置:

但是,当我右键单击Sourcetree上的文件来执行外部差异时,我能够打开Meld,但文件的内容根本没有显示.

我在设置中做错了什么?
我的老板设置了我们新的Git存储库,一个在我们的Windows服务器上,一个在我们的Linux服务器上.
我被要求解决冲突,所以我选择使用Meld.
当我运行第一个文件时,它会打开3个窗口;
我已阅读文档和帮助,但我无法理解.从我所看到的,shipping.remote对我想要保留的Linux机器上的文件进行了更改.shipping.local是来自Windows服务器的文件,shipping.php是合并产生的文件.
因此,如果我只是从shipping.remote获取代码,将其移动到中间文件(shipping.php)并保存,我将在Linux机器上的Git存储库中获得我想要的更新文件?
我希望我正确解释,我只是不想弄乱一些东西.
我在 Sourcetree 中使用 Meld 来解决冲突。面临的问题是我必须选择本地或远程更改,我不能同时保留这两个更改。知道这在 Meld 中是否可行吗?
安装KDiff3用于管理冲突后git,仍然为我打开默认的:
这是这个答案中提到的配置:
git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false
git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false
Run Code Online (Sandbox Code Playgroud)
注意:我可以KDiff3使用简单文件单独运行,但无法在我的 git 项目中运行它。任何想法?
编辑:这是我的 .gitconfig :
[user]
email = vahid.vdn@gmail.com
name = vahid najafi
[diff]
tool = kdiff3
guitool = kdiff3
[merge]
tool = diffmerge
tool = kdiff3
tool = kdiff3 …Run Code Online (Sandbox Code Playgroud) git ×6
meld ×5
3-way-merge ×1
git-difftool ×1
git-merge ×1
github ×1
kdiff3 ×1
mergetool ×1
repository ×1