Wil*_*ard 7 git diff path relative-path
这个命令工作正常:
git diff relative/path/to/file.ext
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用完整路径,git说路径"在存储库外":
git diff /full/path/then/relative/path/to/file.ext
Run Code Online (Sandbox Code Playgroud)
我想git没有在/ full中找到.git目录,所以这就是它失败的原因.
但是我如何让git理解完整的路径,比如颠覆呢?
更新:git版本1.7.0.5
更新:这些文件总是在我的存储库中,我当前的目录也在我的存储库中!它仍然给出了这个错误.
kni*_*ttl 14
你使用的是哪个版本的git?无论路径的格式如何,它都应该工作
cd git
git diff -- git.c
git diff -- ~/git/git.c
Run Code Online (Sandbox Code Playgroud)
但是你必须在git存储库中才能工作!如果您绝对需要从存储库外部执行git命令,请使用--work-tree
和--git-dir
开关:
git --work-tree=~/git --git-dir=~/git/.git diff -- git.c
git --work-tree=~/git --git-dir=~/git/.git diff -- ~/git/git.c
Run Code Online (Sandbox Code Playgroud)
如果您想比较 git 存储库外部的文件,您应该使用 opendiff 等 diff 工具,并将存储库中的文件与存储库外部的其他文件进行比较。
您无法比较外部文件,因为 git 不会“思考”文件。