IntelliJ Git Плагин интеграции: ^ 0 добавляется к имени ветки при попытке извлечения - PullRequest
0 голосов
/ 13 декабря 2018

Я использую плагин IntelliJ Git Integration.Я работаю в режиме с несколькими хранилищами, и обычно все работает нормально.

Когда я говорю Git проверить имя ветви, набрав ее вместо выбора из интерфейса мульти-репо / ветви, он добавляет ^ 0 кимя ветви, приводящее к консольному сообщению, которое я проверяю в состоянии Detached Head.Я более знаком с тем, что означает «отделенная голова», чем с синтаксисом «^» каретки, поэтому я не уверен на 100%, насколько точно это сообщение.

Тем не менее, кто-нибудь знает, почему это происходит?Почему он выбрал оформление mybranch ^ 0 вместо просто mybranch?

(В нижнем правом углу Git выберите repo, выберите «Checkout tag or revision», введите название филиала вместо выбора из списка UI).филиалов)

Отображение «консоли» в IntelliJ:

09: 50: 54.244: [reponame] git -c core.quotepath = false -c log.showSignature = функция проверки false / branchName ^ 0 -

Git bash показывает состояние отсоединенной головы, а не на ветке:

user@WORKSTATION MINGW64 /c/dev/intellij projects/repo-name ((b72ad203...))

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Нет действия, чтобы оформить ветку, набрав в IntelliJ.Существует действие под названием Checkout Tag или Revision, предназначенное для возврата в отдельное состояние.См. Ответ Dan и https://youtrack.jetbrains.com/issue/IDEA-181686

Чтобы оформить ветку в IntelliJ, используйте действие Checkout из списка действий соответствующей ветки.Всплывающее окно ветвей поддерживает speedsearch, так что вы можете сделать это без мыши:

  1. Открыть всплывающее окно ветвей с помощью ярлыка - Ctrl+Shift+[Backquote] в Win, отметьте в Keymap
  2. Введите имя ветви
  3. Enter для открытия списка действий
  4. Выберите действие и Enter для выполнения
0 голосов
/ 13 декабря 2018

В Git проверка тега или фиксированного хэша напрямую всегда переводит вас в состояние «отсоединенного HEAD».Чтобы обеспечить согласованность поведения «checkout tag или revision», плагин Git намеренно добавляет ^0, чтобы вы извлекали самый последний коммит в выбранной вами ветви в состоянии «detached HEAD», как если бы выЯ набрал хеш этого коммита напрямую.То есть он делает это , так что «тег или ревизия извлечения» всегда переводит вас в состояние «отсоединенная ГОЛОВА».

Если бы этого не произошло, было бы намного сложнееДля достижения этого эффекта: вам нужно просмотреть в журнале, какой коммит является последним в этой ветке, а затем скопировать и вставить хеш коммита во всплывающее окно «Проверка редакции».

Если это не такчто вы хотите, не используйте «тег проверки или ревизия».Вместо этого просто выберите ветку из интерфейса филиала.Не забывайте, что в IntelliJ каждый список и меню имеют фильтрацию по типу, поэтому вы можете набирать несколько букв из названия ветви, чтобы избежать необходимости читать весь список.

Что это за вещь ^в любом случае?

Запись ^ в Git выбирает родительские коммиты.commit^ или commit^1 означает первого родителя, commit^2 означает второго родителя (т.е. слияния) и т. Д.^0 означает тот же коммит.commit может быть любым способом присвоения имени коммиту, включая имя хэша или ветки.

Поскольку вы можете использовать имя ветки, branch^0 означает самый последний коммит на branch, но он называетобязуйся, а не ветвь.Поскольку он указывает конкретный коммит, а не ветвь, он переходит в состояние «отсоединенный HEAD».

...