Названия ветки в Git


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

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

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

5 99

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

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

git checkout -B master new_point