Gáb*_*ták 4 git git-diff meld git-submodules
我正在使用Git 1.8.4和Linux(Kubuntu 13.10).
我有一个带子模块的Git存储库.如果我在主Git模块中请求目录差异,它可以正常工作.如果我在其中一个子模块中执行相同的操作,则会出现错误:
~/Projects/MAINMODULE/platform/SUBMODULE [master]$ git difftool -tool=meld --dir-diff --cached
fatal: Could not switch to '../../../../platform/': No such file or directory
diff --raw --no-abbrev -z --cached: command returned error: 128
~/Projects/MAINMODULE/platform/SUBMODULE [master]$ cd ..
~/Projects/MAINMODULE/platform [master]$ cd ..
~/Projects/MAINMODULE [master]$ git difftool -tool=meld --dir-diff --cached
// NO PROBLEM, works.
~/Projects/MAINMODULE [master]$ git version
git version 1.8.4
Run Code Online (Sandbox Code Playgroud)
你有什么主意吗?可能是Git Bug吗?
更新:1.8.5.3产生相同的输出
此解决方法适用于我:
GIT_WORK_TREE="$(git rev-parse --show-toplevel)" GIT_DIR="$(git rev-parse --git-dir)" git difftool --tool=meld --dir-diff
Run Code Online (Sandbox Code Playgroud)
您当然可以根据您的示例放入--cached.
这是非常多的类型,所以你可以添加以下别名~/.gitconfig:
[alias]
submeld = !git --work-tree "$(git rev-parse --show-toplevel)" --git-dir "$(git rev-parse --git-dir)" difftool --tool=meld --dir-diff
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |