Ошибка Git при отправке на GitHub

Я новичок в Git, SourceTree и управлении версиями в целом, поэтому, пожалуйста, простите мое невежество.

У меня был проект на Github с парой десятков коммитов в ветку master, я никогда не делал никаких других веток, поэтому были только коммиты в master и ничего больше.

Используя SourceTree, я вытащил проект, а затем проверил более старую версию проекта, намереваясь работать только с этой версией и отбросить все новые коммиты.

На данный момент ветки проекта выглядят так: введите здесь описание изображения Итак, я немного поработаю над своей старой версией проекта, а затем перейду к фиксации своей работы. Коммит проходит гладко, но когда я отправляю свой проект на сервер GitHub, он показывает это сообщение об ошибке < img src="https://i.stack.imgur.com/m4J9h.png" alt="введите здесь описание изображения"> Говорит, что HEAD отделен от хеша. Что это значит и как это исправить? Это диалоговое окно, из которого я нажал. введите здесь описание изображения

Спасибо за ваше время, глядя на это.

Редактировать: я хочу нажать на основную ветку, в то время как дублирующий вопрос хотел сделать что-то еще с его оторванной головой.


person j76goatboy    schedule 23.08.2016    source источник
comment
Возможный дубликат создания git push из отдельной головы   -  person Scott Weldon    schedule 24.08.2016


Ответы (1)


Вы сделали коммит с detached HEAD это означает, что у вас нет ни одной ветки, ссылающейся на HEAD, поэтому вы не можете отправить ее на GitHub. Ваш коммит должен быть в master.

Итак, что вы должны сделать:

0) Откройте bash и перейдите в каталог проекта.

1) Спрячьте незафиксированные изменения, чтобы сохранить их в безопасности.

git stash

2) Перебазируйте свои коммиты на master.

git rebase master

3) Разрешайте конфликты, если они у вас есть.

4) Нажмите изменения.

git push

5) Получите спрятанные незафиксированные изменения.

git stash pop

Всю информацию о git вы можете найти в Pro Git.

person Volen    schedule 23.08.2016
comment
Я действительно запутался в том, как разрешать конфликты, которые я получаю. Пометка, которую он оставляет в моем конфликтующем файле, сейчас не имеет большого смысла. - person j76goatboy; 24.08.2016
comment
Это может помочь вам git-scm.com/book/en/v2/ - person Volen; 24.08.2016
comment
Спасибо за ресурс. Просто чтобы убедиться, я не хочу, чтобы конечным результатом был мой текущий проект, объединенный с текущей основной веткой. Текущая ветка master испорчена, и я хочу, чтобы мой текущий проект полностью переопределял эту версию. - person j76goatboy; 24.08.2016
comment
В этом случае вы можете использовать нашу стратегию слияния git rebase -X. Это разрешит все конфликты, получив изменения из текущего коммита. Также вы можете сбросить мастер на текущий коммит: git checkout master, затем git reset [хэш коммита], после чего вы можете принудительно нажать, чтобы переопределить удаленную ветку: git push -f. - person Volen; 24.08.2016
comment
Проверка основной ветки, а затем сброс с использованием хэша хорошей версии не сработали должным образом. Новый коммит является основной версией без каких-либо моих изменений. - person j76goatboy; 24.08.2016