Почему я получаю сообщение «Detached Head» при выполнении проверки Checkout и операции фиксации в Android Studio 3.3.1? - PullRequest
0 голосов
/ 27 февраля 2019

Я использую GitHub в своем проекте в Android Studio 3.3.1.

A: Я редактирую файл два раза и фиксирую, затем дважды нажимаю на проект, все в порядке.Вы видите изображение Шаг 1.

B: Я надеюсь вернуть точку «Отправить 1», поэтому я выполняю операцию Checkout Revision точно так же, как изображение Шаг 2.

C: Оформить заказ Операция ревизии прошла успешно, и я получаю изображение Шаг 3, но я нахожу Git display 5adce2b8 в правом нижнем углу изображения Шаг 3, я не понимаю, почему это не такt display master .

D: Я делаю некоторые изменения, но я получаю ошибку «Detached Head», как на изображении. Шаг 4, когда я выполняю операцию Commit, почему?как я могу это исправить?

Шаг 1 enter image description here

Шаг 2 enter image description here

Шаг 3 enter image description here

Шаг 4 enter image description here

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Когда вы извлекаете ревизию по идентификатору или тегу, вы просите git установить ваше рабочее дерево там , но без присоединенной ветви, чтобы следовать за вами, когда вы решите выполнить какую-либо операцию ... которая являетсяотлично от мерзавца, нет проблем вообще.Этот статус называется detached HEAD.Если вы попросите git зафиксировать, например, git создаст новую ревизию, установит предыдущую ревизию в качестве родителя, все так, как обычно ... разница в том, что вы не работали над веткой,нет указателя ветки, который можно было бы переместить, чтобы установить новую ревизию, которую вы только что создали.Опять же, это совершенно нормально с точки зрения мерзавца.Теперь, для вас, разработчика, это , а не , как вы хотели бы работать обычно .Если вы хотите выполнять работу по разработке, как новую функцию, скажем, вы, вероятно, хотите иметь возможность фиксировать, а затем прыгать куда угодно в любое время, и вам не нужно видеть журнал изменений, чтобы увидеть, где вы оставили свою работу зависшей... поэтому вы бы использовали ветку для разработки своей функции.

Но для чего они используются для отсоединенного HEAD?Я могу быстро подумать об этих ситуациях:

  • Нужно извлекать удаленную ветку, и я на самом деле не нуждаюсь в локальной ветке или не хочу для нее (не буду разрабатывать там что-либо, просто проверьте что-то изатем вернитесь туда, где я был)
  • Нужно проверить, что слияние пройдет нормально, прежде чем я переместлю реальные ветви, задействованные
  • Нужно сделать быстрое исправление, вытянув изменение изпереходите в другой филиал, который находится на удаленном компьютере.

И люди будут думать о других десятках причин для работы с отделенным HEAD.Вообще-то, это одно из чудес git.

Если вы сделали проверку на терминале, вы получите большое предупреждение от git, рассказывающее о начале работы с отключенным HEAD, а также даст несколько инструкцийвыйти из этого.Обычно вы просто создаете ветку, где находитесь, и проверяете ее.Это можно сделать одним выстрелом:

git checkout -b some-new-branch

И вы снова будете работать над веткой, без отсоединенного состояния HEAD.

0 голосов
/ 27 февраля 2019

В основном «DETACHED HEAD» означает, что вы не находитесь на ветке.Если вы хотите не просто проверить состояние репо в этот момент, но продолжить работу над ним, вам нужно установить (сбросить) ветку там, так что «Сбросить текущую ветку здесь».

Checkout revision - установите ваш рабочий каталог так, чтобы он совпадал с файлами на этом этапе.Возврат - отмена изменений, внесенных этим коммитом (создаст возвратный коммит).

Я бы порекомендовал прочитать основы ветки git .Все, что касается git, должно начать обретать смысл после того, как вы это сделаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...