Названия ветки в Git
может быть несколько способов задать этот вопрос, поэтому вот описание проблемы. Я работал над master и совершил некоторые вещи, а затем решил, что хочу отложить эту работу. Я сделал резервную копию нескольких коммитов, а затем разветвился, прежде чем начал свою дерьмовую работу. Практически это работает нормально, у меня сейчас есть другая ветвь в качестве моей основной ветви развития. Мне интересно, как я могу изменить ситуацию, поэтому я снова работаю над Мастером, но у него нет моей мусорной работы и эта работа ведется в другой отрасли.
некоторые способы это можно было бы спросить / решить: Как я могу переименовать свою главную ветвь во что-то другое, а затем переименовать что-то еще в master? Как мне создать резервную копию master, а затем вызвать все коммиты, которые я скопировал в прошлом, чтобы быть на другой ветке?
Спасибо за все (быстрые) ответы! Они все хорошие.
5 ответов:
в дополнение к другим комментариям, вы можете найти переключатель-m (move) в git-branch полезным. Вы можете переименовать свой старый мастер на что-то другое, а затем переименовать свою новую ветку в master:
git branch -m master crap_work git branch -m previous_master master
Я думаю, что вы должны рассмотреть другую стратегию развития, чтобы предотвратить подобные проблемы. Один из них, который, кажется, лучше всего работает для меня, - это никогда не заниматься разработкой непосредственно на моей главной ветке. Независимо от изменений, которые я делаю, я всегда создаю новую ветку для нового кода:
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
пуск
master
создайте ветку под названиемin-progress
, затем сбросьтеmaster
к более ранней фиксации.$ git branch in-progress $ git reset --hard HEAD^
Это относительно легко:
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