Git Workflow Проблема: git push, git reset --soft HEAD ~ 1 и как отправить обновленный код в новую ветку? - PullRequest
0 голосов
/ 29 августа 2018

Я совершенно новичок в рабочем процессе git. Я сделал беспорядок, и мне нужна помощь, чтобы распутать это. Вот что произошло:

  • Я отправил файлы в репозиторий
  • Направление компонента резко изменилось, поэтому я решил, что больше не хочу, чтобы этот коммит отображался в репо, но продолжаю вносить в него изменения
  • Я должен был провести больше исследований и набрать git revert, однако вместо этого я сделал git reset --soft HEAD ~ 1
  • Я также unstaged все файлы (опять же не знал об использовании команды --mixed)
  • Теперь у меня есть файлы в моей рабочей области, но коммит все еще находится в репо

Что бы я хотел сделать:

  • Удалите этот коммит полностью из репо (сейчас я получаю конфликт слияния)
  • Создать новую ветку, которая называется feature
  • Вместо этого добавьте новые обновленные файлы в эту ветку

Любая помощь очень признательна.

1 Ответ

0 голосов
/ 29 августа 2018

Когда вы сделали git reset, вы отменяли коммит только локально. Вы должны сделать то же самое изменение и в удаленном режиме.

  1. Предполагая, что вы уже сделали git reset --soft HEAD~1, отмените внесение изменений и очистите рабочий процесс, используя git stash.
  2. Нажмите для перехода, используя флаг --force-with-lease. Это принудительно подтолкнет команду git reset и отменит коммит для удаленного.

ПРЕДУПРЕЖДЕНИЕ : Будьте очень осторожны при использовании флага --force-with-lease, вы можете потерять изменения. Всегда хорошая идея сделать резервную копию вашего кода на случай, если что-то пойдет не так.

  1. Создайте новую ветку и распакуйте свои изменения. Теперь у вас есть изменения в новой ветке.

Редактировать 1: Это будет работать только в том случае, если на ветви разрешены принудительные толчки Если нет, то git revert - один из вариантов.

Редактировать 2: Как указано Филипп --force-with-lease является лучшим подходом.

Подробнее о --force-with-lease здесь .

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