Подтвердить что ты не робот

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
4b9b3361

Ответ 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 с активной рабочей веткой.

НТН