Сведения о вопросе

PIRLO

02:14, 17th August, 2020

Теги

git   branch    

Переключите названия ветвей в git

Просмотров: 511   Ответов: 5

Возможно, существует несколько способов задать этот вопрос, поэтому вот описание проблемы. Я работал над Мастером и совершил некоторые вещи, а затем решил, что хочу отложить эту работу. Я сделал резервную копию нескольких коммитов, а затем разветвил их, прежде чем начать свою дерьмовую работу. Практически это работает нормально, просто сейчас у меня есть другая ветвь в качестве моей основной ветви развития. Я задаюсь вопросом, как я мог бы изменить все вокруг, поэтому я снова работаю над Мастером, но у него нет моей мусорной работы, и он сказал, что работа находится на другой ветке.

В некоторых отношениях это может быть asked/solved: Как я могу переименовать свою главную ветвь на что-то другое, а затем переименовать что-то другое в master? Как я могу сделать резервную копию мастера, а затем вызвать все коммиты, которые я сделал в прошлом, чтобы быть на другой ветке?

Спасибо за все (быстрые) ответы! Они все хороши.



  Сведения об ответе

FAriza

02:20, 15th August, 2020

В дополнение к другим комментариям, вы можете найти полезным переключатель-m (move) в git-branch. Вы можете переименовать свой старый мастер на что-то другое, а затем переименовать свою новую ветвь в master:

git branch -m master crap_work
git branch -m previous_master master


  Сведения об ответе

JUST___

04:17, 11th August, 2020

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

git checkout -b topic/topic_name master

Оттуда я могу вытолкнуть изменения в общедоступные репозитории:

git push pu topic/topic_name

или в конце концов просто слейте его обратно с моей главной ветвью:

git checkout master && git merge topic/topic_name

Если вам действительно нужно вернуться к более старому моменту времени и установить его в качестве своего мастера, вы можете переименовать текущую ветвь на что-то другое, а затем проверить более старую версию, чтобы быть вашим мастером:

 git branch -m master junk
 git co -b master old_sha1_value


  Сведения об ответе

dumai

11:59, 21st August, 2020

Начните с master, создайте ветвь с именем in-progress,а затем сбросьте master до более ранней фиксации.

$ git branch in-progress
$ git reset --hard HEAD^


  Сведения об ответе

P_S_S

21:06, 1st October, 2020

Это относительно легко сделать:

git checkout -b fake_master master # fake_master now points to the same commit as master
git branch -D master               # get rid of incorrect master
git checkout -b master real_master # master now points to your actual master
git checkout master                # optional -- switch on to your master branch


  Сведения об ответе

dumai

13:39, 8th August, 2020

Это настроит вашего мастера на любую точку в один шаг:

git checkout -B master new_point


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться