Кажется, вас привели к отдельной ГОЛОВЕ, которую можно рассматривать как безымянную ветвь. Решение состоит в том, чтобы найти сделанные вами коммиты и применить их к именованной ветви.
Из вашего описания я не могу сказать, в каком состоянии вы сейчас находитесь. Итак, во-первых, используйте git reflog
, чтобы узнать коммиты. git reflog
печатает список коммитов, на которые HEAD
однажды указал. Сверху вниз найдите коммит FIRST , с которым вы знакомы, и вы уверены, что это один или один коммит, который вы сделали в безымянной ветви. Если вы сделали только один коммит, то это то, что мы ищем. Если вы сделали более одного, используйте git log <commit>
, чтобы найти их все. Если ситуация более сложная, что, я надеюсь, нет, используйте git reflog
, а затем git log
несколько раз против возможных коммитов, чтобы найти все коммиты, которые кажутся потерянными.
Во-вторых, примените эти коммиты к названная ветка. Предположим, вы хотите, чтобы они были на master
.
# switch to master
git checkout master
# apply the commits from the oldest to the youngest
git cherry-pick A B C
Наконец, обновите и pu sh master
.
git pull origin -r master
git push origin master