Я пытаюсь сравнить один файл в ветви с тем же файлом в другой ветви.Я ссылался на ответы на похожие вопросы, но я не могу заставить что-либо работать, и я пробовал это на двух разных системах, используя разные версии git.Я получаю разные сбои в каждой системе.
У меня такое ощущение, что проблема в том, что ветка, с которой я сравниваю, выглядит как номер ревизии.Имя ветки "2.2.0".
В одной системе, работающей с git v2.17.0, я вижу это:
% git diff -b 2.2.0 my-branch -- stuff.groovy
diff --git a/vars/stuff.groovy b/vars/stuff.groovy
new file mode 100644
index 0000000..c6a2073
--- /dev/null
+++ b/vars/stuff.groovy
@@ -0,0 +1,84 @@
Это переходит к выводу всего содержимого файлакаждая строка начинается с «+», что очевидно, так как она сравнивается с «/ dev / null».Я понятия не имею, почему он это делает.
В другой системе, работающей с git v2.7.4, вместо другого вывода я вижу только эту строку:
fatal: bad revision '2.2.0'
Я могу сделать этосравнение в Eclipse, которое использует библиотеку JGit, а не командную строку «git», и работает отлично, показывая одну строку между этими ветвями, которая отличается.
Обновление :
Добавление результатов из следующих команд:
% git branch
2.2.0
* cart-checkout-customizations
master
% git tag
% git rev-parse --symbolic-full-name 2.2.0
refs/heads/2.2.0
Обновление :
Добавление вывода из другой команды для диагностики:
% git branch -a
2.2.0
* cart-checkout-customizations
master
remotes/origin/2.2.0
remotes/origin/bugfix/pr-issue
remotes/origin/cart-checkout-customizations
remotes/origin/dp5252/func_get_job_details_textgroovy-1560980842574
remotes/origin/dp5252/pl_idp_msgroovy-1560289622641
remotes/origin/dp5252/pl_idp_msgroovy-1560979038086
remotes/origin/dp5252/stage_build_docker_imagegroovy-1559338261549
remotes/origin/feature/2.2.0-temp
remotes/origin/feature/2.2.1
remotes/origin/feature/cfgrole-playbook
remotes/origin/feature/disable-concurrent-builds
remotes/origin/feature/hpa
remotes/origin/feature/hygieia
remotes/origin/feature/istio
remotes/origin/feature/notify-stash
remotes/origin/feature/profile-pipeline-id
remotes/origin/feature/sast
remotes/origin/feature/sast-swap
remotes/origin/feature/scrumboard-removal
remotes/origin/feature/smoke-test-fix
remotes/origin/feature/temp-investigation
remotes/origin/master
remotes/origin/trackingaudit
Если это не очевидно, текущей веткой является «cart-checkout-customizations», то есть «my-branch», на которую я ссылаюсь в другом месте.Фактическое имя файла не "stuff.groovy", но это не имеет значения.
Обновление :
И, чтобы быть понятным, пример команды, предоставленной@ZachPosten работает.Я надеюсь, что это даст кому-то полезную подсказку.Это действительно похоже на то, что оригинальные команды привели к тому, что git подумал, что «2.2.0» - это НЕ ветвь, а что-то еще.Форма, которая делает явным то, что это имя ветки (предварительно добавив к нему «origin /»), каким-то образом заставила его работать.