Как я могу использовать полные пути в Git? - PullRequest
7 голосов
/ 19 декабря 2011

Эта команда работает нормально:

git diff relative/path/to/file.ext

Но если я использую полный путь, git говорит, что путь "находится вне хранилища":

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

Полагаю, git не находиткаталог .git в / full, поэтому он не работает.

Но как мне заставить git понимать полные пути, как это делает subversion?

Обновление: git version 1.7.0.5

Обновление: эти файлы всегда находятся в моем хранилище, и мой текущий каталог также находится в моем хранилище!Это все еще дает эту ошибку.

Ответы [ 2 ]

14 голосов
/ 19 декабря 2011

Какую версию 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
0 голосов
/ 19 декабря 2011

Если вы хотите просмотреть файл за пределами git-репо, вы должны использовать инструмент сравнения, такой как opendiff, и сравнить файл из репо с другим файлом вне репозитория.

Вы не можете сравнивать внешние файлы, потому что git не «думает» в файлах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...