我怎样才能在git中使用完整路径?

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)


thr*_*ree 0

如果您想比较 git 存储库外部的文件,您应该使用 opendiff 等 diff 工具,并将存储库中的文件与存储库外部的其他文件进行比较。

您无法比较外部文件,因为 git 不会“思考”文件。