#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.