Ошибка git «роковая: плохая ревизия» при использовании git diff - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь показать изменения между источником определенной папки, и мне бы хотелось, чтобы она отображала только имена тех, которые были добавлены и изменены с помощью следующей команды, но она возвращает ошибку.

Команда:

git diff --name-only --relative --diff-filter AM origin -- foldername/

Ошибка:

fatal: bad revision 'origin'

Почему это внезапно произошло? Как я могу решить это?

Редактировать

с использованием другого репо и «origin / master» возвращает только разные результаты

C:\gitprojects\samplefolder (master -> origin)
λ git diff --name-only --relative --diff-filter AM origin/master
readme.md

C:\gitprojects\samplefolder (master -> origin)
λ git diff --name-only --relative --diff-filter AM master origin/master
readme.md

C:\gitprojects\samplefolder (master -> origin)
λ git diff --name-only --relative --diff-filter AM origin
Properties/sample.properties
readme.md

1 Ответ

0 голосов
/ 27 апреля 2018

Посмотрите на страницу man для git diff (запустите man git-diff).

В разделе Описание вы можете указать четвертый вариант вызова git diff как тот, который вы используете. Страница man подробно описывает ее использование следующим образом:

git diff [--options] <commit> [--] [<path>...]
    This form is to view the changes you have in your working tree relative to the named <commit>. You can
    use HEAD to compare it with the latest commit, or a branch name to compare with the tip of a different
    branch.

В вашем случае вы используете строку origin в качестве <commit> (или ревизию), с которой хотите сравнить ваше рабочее дерево. Это не может работать, потому что origin не является ревизией / коммитом. Вот что говорит вам сообщение об ошибке.

origin является «удаленным». Удаленный - это просто ссылка на другой удаленный клон репозитория, и git diff не может сравнивать целые репозитории, только между ревизиями / коммитами.

Вы можете решить эту проблему, указав коммит, с которым хотите сравнить. Одним из примеров будет origin/master, что означает сравнение с кончиком ветви master на пульте, называемой origin. Что именно указать, зависит от того, что вы пытаетесь выяснить конкретно.

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