Git push в удаленный репозиторий, отменить последний коммит и заменить на локальный коммит - PullRequest
0 голосов
/ 26 октября 2018

Я сделал это:

  • Разместил репозиторий на Github, сделал там несколько коммитов и нажал, но я столкнулся с проблемами.

  • Я клонировал исходный репозиторий (не разветвление) и сделал коммит локально.

Теперь я хочу отправить локальный коммит в мой разветвленный репозиторий, чтобы сделать запрос на извлечение.

Итак, я установил источник клонированного репозитория на свой раздвоенный пульт.

git remote set-url origin https://github.com/MY-USERNAME/REPOSITORY.git

Теперь я хочу, чтобы мой локальный репозиторий полностью перезаписал пульт. Как правильно это сделать? git push --force

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Если я вас правильно понимаю, у вас есть remote на github, который вы хотите полностью удалить.

Если вас не волнует потеря истории пульта
Просто удалите репозиторий на github, снова разветвите его и отправьте изменения в этот чистый удаленный форк-пульт. Таким образом, вы не будете бороться со всеми ловушками, которые git push --force обычно приносит с собой.

Если вы не хотите потерять историю пульта дистанционного управления
Вытащите из своего плохого состояния remote, а затем создайте новый коммит, содержащий хорошее состояние. Поскольку этот новейший коммит перезаписывает все (измененные) файлы, он должен работать так же, как и при отсутствии плохой истории.

Проблема с git push --force заключается в том, что вы можете изменить историю таким образом, чтобы ваш форк больше не соответствовал исходному репозиторию. Обычно лучше найти способ без силового толчка.

0 голосов
/ 26 октября 2018

Проблема в том, что у git может быть только одна ветка с именем master.Если вы разветвляете репо, добавляете новый коммит, если кто-то еще создает новый коммит, а затем вы нажимаете его, у вас будет ошибка.

Если цель состоит в том, чтобы сделать запрос на извлечение, создайтеНовая ветка с новым именем, и нажмите эту новую ветку.Зайдите на веб-сервер и создайте полный запрос между вашей новой веткой и мастером.

Не push --force, если вы действительно не хотите удалять коммиты онлайн.Даже если это ваш форк, этот коммит является частью исходного репо, нет смысла удалять его.

Правильный путь - создать ветку с соответствующим именем и выполнить запрос на извлечение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...