Как отменить изменение в удаленном репозитории без создания новой ветки - PullRequest
0 голосов
/ 10 мая 2019

Я участвую в разработке проекта Python 3. Допустим, моя ветка называется my_branch. Я должен был сделать быстрое и небольшое изменение в своем коде, и из-за своей лени я сделал это в GitLab webui. Затем я внес некоторые изменения в свой локальный репозиторий, не тянув свою ветку. Теперь я не могу отправить изменения, потому что my_branch отличается от моего локального репозитория. Как я могу отменить изменения в удаленной ветви my_branch без создания новой ветви. Я просто хочу сделать шаг назад.

git push выдает ошибку: обновление было отклонено, потому что удаленный содержит работу, которой у вас нет локально

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Чтобы подвести итог вашей ситуации, у вас есть один коммит на вершине ветки, от которого вы хотите избавиться.

Существует два сценария:

  1. Вы хотите сохранить свои изменения в верхнем коммите
  2. Вам больше не нужны изменения в верхнем коммите

Если вы хотите сохранить изменения и по-прежнему хотите удалить коммит и получить последнюю версию с удаленного компьютера:

git reset --soft HEAD~1
git stash
git pull

Мягкий сброс с HEAD ~ 1 переместит изменения из вашего верхнего коммита и получит их в промежуточной области, а также удалит этот коммит из ветви. Теперь ваши изменения доступны в области подготовки. Вы можете легко их спрятать, и все готово к удалению.

Как только вы извлекаете данные из удаленного хранилища, вы можете снова открыть тайник, и ваши изменения в последнем коммите вернутся.

Если вам больше не нужен ваш коммит, то:

git reset --hard HEAD~1

Hard reset просто удалит ваш коммит из вашей ветки.

Надеюсь, это поможет.

0 голосов
/ 10 мая 2019

Если у вас есть ...

Local: A->B->C->E
Remote: A->B->C->D

Все, что вам нужно сделать, это принудительный толчок.git push -f origin my_branch D коммит на удаленном должен исчезнуть.

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