git — как заменить Master?

#git

#git

Вопрос:

У меня есть удаленное хранилище, где мой проект устарел.
Я создал новое локальное репозиторий с новым проектом, переключился на новую ветку и сделал то, что хотел. Теперь я хочу отправить это (не изменения — весь проект) в это удаленное хранилище. Как я должен это сделать?

Комментарии:

1. Вы хотите запустить ветку, которая не существует на удаленном компьютере, не так ли?

2. ДА. И нет. Я хочу заменить ветку Master в Origin на ветку non-master локального репозитория.

3. И вы не хотите сделать то же самое с вашим локальным master ?

4. ДА.. Я был нелогичен, вы правы. Что ж, теперь я объединил Mater и ту ветку в локальном репозитории и через несколько секунд опробовал «git push -f origin master». Это правильно?

5. Да, только не используйте -f флаг с первой попытки. git push origin master должно сработать. -f могут быть потеряны коммиты.

Ответ №1:

-f Аргумент к git push , вероятно, то, что вы хотите, это позволяет перезаписывать получающее репозиторий с несвязанными изменениями. Старые изменения в удаленном репозитории все еще будут существовать некоторое время, но в конечном итоге будут собраны как мусор.

Ответ №2:

При использовании git push вы можете указать, из какой ветки нажимать и в какую ветку нажимать:

 git push origin localbranch:remotebranch
  

Это может привести к сбою, если remotebranch не является предком localbranch . Если вы используете -f , вы можете принудительно перезаписать, но будьте осторожны, потому что это приведет к потере коммитов.

Но вы, вероятно, хотите просто объединить два локально и отправить этот обновленный master.