Eclipse Git, проверка удаленной ветки как новой локальной ветки

При изменении ветки в Eclipse с помощью команды Team > Switch To > Other... отображается Remote Tracking, я выбираю филиал, который хочу оформить. Обычно это приводило к проверке ветки как новой локальной ветки, где я также мог напрямую фиксировать изменения и объединять другие ветки с этой веткой.

Однако ветка каким-то образом проверяется как нелокальная ветка, и я не могу зафиксировать ее и не могу объединить с ней другие ветки.

Как вернуть старое поведение, когда удаленная ветка автоматически проверяется как новая локальная ветка?

В Git, если вы не находитесь в ветке, вы находитесь в отключенном режиме. Вы можете подтвердить это из командной строки, набрав git status. Однако даже в отдельном режиме вы все равно можете создавать новые коммиты и выполнять слияния. Я не могу придумать причину, по которой Eclipse блокирует эти операции во время отсоединения, поэтому я чувствую, что, возможно, происходит что-то еще, блокирующее пользовательский интерфейс, например, вы находитесь в процессе слияния или какой-либо другой операции? (git status тоже может помочь вам это подтвердить.)

TTT 08.06.2024 22:45

@TTT Это не вопрос о командной строке Git, которая здесь может быть даже недоступна.

howlger 09.06.2024 10:36

В диалоговом окне «Ветви» (которое отображается в разделе «Команда» > «Переключиться на > Другое...»), когда я выбираю ветку в разделе «Удаленное отслеживание» и нажимаю «Оформить», меня спросят, и я могу выбрать «Извлечь как новую локальную ветвь» (что это то, что вам нужно), проверьте Commit (который вы могли выбрать по ошибке) или_Cancel_.

howlger 09.06.2024 10:47

@howlger, спасибо, у меня по какой-то причине нет дополнительного диалогового окна «Оформить как новую локальную ветвь». Однако я нашел обходной путь, выбрав «Новая ветка...», где автоматически выбирается тот, который выбран из удаленного отслеживания.

ddomnik 09.06.2024 11:54

@howlger Приятно знать, что он полностью автономен и в системе может отсутствовать командная строка Git. Что касается сценария ОП, блокирует ли затмение фиксацию и слияние при отсоединении?

TTT 09.06.2024 14:29

@TTT Нет. Когда вы извлекаете удаленную ветку, вас спросят: «Извлечь как новую локальную ветку» (это то, что вам больше всего нужно) или «Извлечь зафиксировать». Этот диалог отображается по умолчанию, но его можно отключить (не рекомендуется, но здесь произошло именно это). Без этого диалогового окна он менее интуитивен (как и командная строка Git): разные команды для достижения одной и той же цели (локальная ветка с определенной удаленной веткой в ​​качестве восходящей) в зависимости от того, выбираете ли вы локальную или удаленную ветку.

howlger 09.06.2024 15:02

@TTT Та же проблема в командной строке Git, но без интуитивного решения: stackoverflow.com/a/1783426/6505250 (11696 голосов!).

howlger 09.06.2024 15:10

@howlger Я согласен, что при наличии нескольких пультов извлечения копии удаленной ветки из командной строки не интуитивно понятно. Я бы сказал, что вероятность случайного отключения от командной строки, вероятно, выше, чем при использовании пользовательского интерфейса, который может запросить это. Я думаю, что этот вопрос и ответ объясняют, как предотвратить отсоединение, однако мне больше любопытна эта часть вопроса: «Однако ветка каким-то образом проверяется как нелокальная ветка, и я не могу ее зафиксировать. и не могу объединить с ним другие ветки." Я не понимаю, почему OP не может зафиксировать или объединиться в отсоединенном состоянии.

TTT 09.06.2024 15:50

@TTT Вам нужно сначала создать локальную ветку, чтобы иметь возможность фиксировать или объединять, не так ли?

howlger 09.06.2024 19:44

@howlger Совсем нет. Ветви — это просто именованные указатели на идентификатор фиксации. Если хотите, вы можете работать полностью независимо и позже указать ветку на коммит. Я намеренно отсоединяю и удаляю свою текущую ветку всякий раз, когда завершаю работу над функцией, чтобы позже, когда я вернусь, показать себе, что у меня нет ничего, что мне нужно сохранять, и я готов начать все заново. Когда я возвращаюсь, иногда я просто начинаю программировать, оставаясь отстраненным. Я также тестирую слияния в отсоединенном состоянии, поэтому у меня нет дополнительных затрат на создание и удаление временной ветки до и после теста. При этом я сомневаюсь, что многие люди так делают.

TTT 09.06.2024 23:15

@TTT Спасибо, я понимаю. Вы также можете сделать это в Eclipse, но при проверке коммита вы по умолчанию получаете следующее предупреждение «Detached HEAD», которое можно подавить: «Вы находитесь в состоянии «отсоединенный HEAD». Это означает, что у вас нет локальная ветка извлечена. Вы можете осмотреться, но фиксировать изменения не рекомендуется. Причина в том, что эти коммиты не будут ни в одной ветке и не будут видны после извлечения другой ветки. Если вы хотите внести изменения, создайте или. сначала загляните в местный филиал». Вы не можете нажать отсоединить HEAD, верно?

howlger 11.06.2024 12:34

@howlger, ты можешь «вроде как» толкнуть оторванную голову. На самом деле вам не нужна локальная ветка, но вам понадобится удаленная ссылка для отправки. Подробности, особенно примечание, смотрите в этом вопросе и ответе.

TTT 11.06.2024 14:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
12
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Выбор «Отдельного HEAD и извлечения ветки удаленного отслеживания» решает проблему, и я могу извлечь удаленную ветку как новую локальную ветку.

Другие вопросы по теме