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

时间:2011-12-19 11:27:08

标签: git path diff relative-path

此命令正常工作:

git diff relative/path/to/file.ext

但是如果我使用完整路径,git说路径“在存储库外”:

git diff /full/path/then/relative/path/to/file.ext

我认为git没有在/ full中找到.git目录,所以这就是它失败的原因。

但是我如何让git理解完整路径,比如subversion呢?

更新:git版本1.7.0.5

更新:这些文件总是在我的存储库中,我当前的目录也在我的存储库中!它仍然会出错。

2 个答案:

答案 0 :(得分:13)

您使用的是哪个版本的git?无论路径的格式如何,它都应该有效,即

cd git
git diff -- git.c
git diff -- ~/git/git.c

但是你必须在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

答案 1 :(得分:0)

您是否使用了不区分大小写的文件系统,例如使用默认设置的MacOSX? git rev-parse --show-toplevel向您显示的路径是否具有不同的大小写,例如/full/path/Then。在这种情况下,您必须使用Then重命名mv /full/path/Then /full/path/then或调用git diff /full/path/Then/relative/path/to/file.ext

如果您重命名目录,则在没有程序打开目录或其内容时更安全。