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

Как переместить мастер в HEAD?

* [971f835] (HEAD, original_idea) Now working here. Some comment 9
* [692b673] Some comment 8
* [3ebff62] Reverted to original idea. Some comment 7
| * [72ea01d] (master) Decided it wasn't worth the effort. Some comment 6
| * [985c1ad] Some comment 5
| * [4d7d491] Some comment 4
| * [0c697bb] Branched to try an idea. Some comment 3
|/
* [7280b1f] Some comment 2
* [5c2c6d0] Some comment 1
* [bc7aac6] Initial commit

Итак, master остался позади. Не знаю, как это произошло. Как только я решил, что я закончил с веткой, которая не сработала, я проверил [7280b1f] и продолжил оттуда.

Как это исправить? Я эта печально известная проблема "оторванной головы"?

Нужно ли выравнивать master с HEAD для оптимального состояния репо?

Мой рабочий процесс очень прост. Это просто управление одним текстовым файлом. В подавляющем большинстве случаев это:

git add .
git commit -am "Some comment"

И что это.

Я решил попробовать идею и создал ветку. Когда это не сработало, я проверил корень этой ветки и вернулся к подпрограмме git add/commit.

4b9b3361

Ответ 1

Это печально известная проблема "особей"?

Нет, HEAD указывает на branch original_idea

Должен ли хозяин быть совмещен с HEAD для оптимального состояния здоровья репо?

Нет, мастер - это просто условное имя, обычно принимаемое как ветвь, которая легко строится и, надеюсь, рабочий снимок.

Как это исправить?

Если вы перетащили master в другой репозиторий, вам нужно объединить изменения с original_idea в master:

git checkout master
git merge original_idea

Имейте в виду, что если есть какие-либо конфликтующие изменения, вам необходимо их разрешить.

Если вы еще не нажали мастер в другой репозиторий, вы можете удалить мастер и воссоздать его из оригинала. ПРЕДУПРЕЖДЕНИЕ.. Каждый, кто работал над мастером, должен reset создать свою ведущую ветвь.

$ git checkout master
Switched to branch 'master'

$ git checkout -b experiment_1
Switched to a new branch 'experiment_1'

# Here we are going to delete master.  Should be safe, since experiment_1
# was created from this point on the previous command

$ git branch -d master
Deleted branch master (was 72ea01d).

$ git checkout original_idea 
Switched to branch 'original_idea'

# Now that we checked out the branch HEAD is pointing to, we can recreate master

$ git checkout -b master
Switched to a new branch 'master'

Ответ 2

Если git branch показывает, что ваша текущая ветка - original_idea, это не было бы удаленной ситуацией HEAD.

Но в любом случае, если вы хотите, чтобы ваш мастер отражал вашу текущую фиксацию (которая что означает HEAD в Git):

git branch -f master HEAD
git checkout master

Вы найдете другие альтернативы в "Как мне "переместить" мои коммиты из "без ветки" в фактическую ветвь?".

Проблема заключается в том, что он завершает завершение всей ветки, заканчивающейся на главном сервере.

Затем вам нужно всего лишь:

  • убедитесь, что HEAD ссылается на ветку (например, original_idea в вашей схеме).
  • переформатировать эту ветку поверх мастера:

Это означало бы:

git checkout original_idea
git rebase master
git checkout master
git merge original_idea