Как сменить origin
Ситуация следующая: у меня не было ветки master, я ни разу не коммитился, а затем решил запушить много-много изменений.
Я сделал первый коммит "Initial Commit", а затем создал ветку markup и запушил все изменения. В итоге сейчас на Гитлабе я имею только ветку markup, а ветки master нет вовсе.
К тому же у меня в SmartGit origin стоит на локальную ветку markup.
Могу ли я как-то сделать так, чтобы в моем удаленном репозитории была ветка master с коммитом "Initial commit", а от нее была ветка markup, куда я смогу сливать изменения?
Ответы (1 шт):
командой push можно отправить в отдалённое хранилище только какой-нибудь существующий указатель (мы же помним, что в программе git «ветка» — это указатель на коммит). под тем же именем, или под любым другим произвольным.
т.е., чтобы в отдалённом хранилище появился (пока отсутствующий там) указатель на какой-нибудь произвольный коммит, надо предварительно создать локальный указатель на этот самый коммит.
создать локальный указатель имя, указывающий на коммит с определённым хэшем, можно, например, командой checkout (этот указатель сразу станет и текущим):
$ git checkout -b имя хэш
а теперь указатель можно отправить в отдалённое хранилище (обозначенное, например, как origin) под нужным вам именем — master:
$ git push origin имя:master
если локальный указатель имя вам после этого не нужен, то можете его удалить, предварительно, конечно, сделав текущим какой-нибудь другой указатель (например, markup):
$ git checkout markup
$ git branch -d имя
