引子
昨天才第一次知道有mergetool这种东西,于是今天立马就上手试了试。对于Git的使用,个人偏爱敲命令行,但是命令行下遇到冲突就很尴尬。冲突少的话,直接vim很快,冲突一多就很郁闷了。所以,我觉得mergetool还是蛮有用的。本着不花钱的原则,今天尝试了几个免费的工具,如fileMerge,meld,diffMerge,怎么说呢,没有一款像当初第一次用SourceTree那样,一下就能抓住我的心(颜狗)。于是,我开始怀念之前WebStorm中的冲突解决,深得我心。再然后呢,我就想直接设置WebStorm来作为mergetool了。可是,我的教育版证书也就还有一个月就过期了(怀念大学),再次本着不想花钱的原则,选择了JetBrains家的另一个IDE,PyCharm CE,毕竟社区版,真的不花钱。然后鼓捣鼓捣就用上了,废话不讲了,上配置。
配置
- 下载个PyCharm CE
- 编辑Git的配置文件
1
vim $home/.gitconfig
- 把下面的配置粘进去
1
2
3
4
5
6
7
8
9
10
11
12[mergetool]
keepBackup = false
prompt = false
[merge]
tool = charm
[mergetool "charm"]
cmd = "/Applications/PyCharm\\ CE.app/Contents/MacOS/pycharm" merge $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
trustExitCode = true
[diff]
tool = charm
[difftool "charm"]
cmd = "/Applications/PyCharm\\ CE.app/Contents/MacOS/pycharm" diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") - 保存退出
- 使用
1
2git mergetool
git difftool
结
- 启动速度超慢有没有。。。果然颜值和效率不能兼得嘛?
- JetBrains官网给出的教程里说让我们
Create Launcher Script
,我没用这种方法,因为用这种方法要事先启动PyCharm,而且一执行$ git mergetool
就会立即收到exitcode。那个启动脚本是python写的,不知道能不能通过修改那个启动脚本来让它正常。 "/Applications/PyCharm\\ CE.app/Contents/MacOS/pycharm"
这里的空格一定要用双反来转义。