Git diff дает неоднозначную ошибку аргумента
Недавно я перешел из SVN в git и попытался изучить мой путь вокруг git.
Мне нужно найти файлы, которые изменились между двумя ветвями моего репозитория. Я использую следующую команду:
git diff branch_2..branch_1
Я получаю следующую ошибку:
fatal: ambiguous argument 'branch_2..branch_1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ветвь
git дает следующее o/p:
git branch -a
* branch_1
master/origin
remotes/origin/HEAD -> origin/master
remotes/origin/branch_2
remotes/origin/branch_1
Ответы
Ответ 1
Если вы просто делаете:
git diff branch2..branch1
Это не сработает, как указано в списке ветвей git, ваши "пульты" указаны как "источник". На самом деле это означает, что у вас есть эти ветки на вашем пульте, но они на самом деле не проверяются локально.
Итак, у вас есть два варианта. Попробуйте это, и дайте мне знать, как это происходит.
На основе списка веток:
Diff с использованием origin/
git diff origin/branch2..branch1
Если вы хотите проверить эти ветки локально, чтобы выполнить свой diff и, возможно, работать с ними на своей рабочей станции. Кроме того, поддерживая diff в этом формате:
git diff branch2..branch1
Что вам нужно сделать, так это проверить эти ветки, чтобы установить их как локальные ветки с вашего пульта. Просто сделайте следующее:
git checkout branch2
Затем вы можете сделать
git diff branch2..branch1
Ответ 2
Иногда вы получаете мелкий репозиторий, созданный с использованием
git clone --depth 1 <repo-url>
Попытка git diff
терпит неудачу с fatal: ambiguous argument error
:
fatal: ambiguous argument [...]: unknown revision or path not in the working tree.
Затем вам нужно сделать ваши ссылки локально доступными. Преобразование мелкого репозитория git в полное (неглубокое) репо из мелкого репозитория, см. Git deep fetch и git unshallow.
Тогда он должен быть в состоянии создать git diff
ветки:
git diff branch1
Вышеупомянутый пример сравнивает branch1
с активной рабочей веткой.
НТН