Git - сохранить коммиты, сделанные конкретным автором - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть филиал, над которым я работал.

Мои коллеги случайно слили свои ветви в мои, и теперь все коммиты повсюду.

Я не могу выбрать вишню, потому что есть сотни коммитов.

Как сохранить только мои изменения в ветке?

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

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

В дополнение к новому решению для ветвей, на которое намекают Nivrutti Pawar и Shakil , я бы посоветовал вам также восстановить ветку до ее состояния перед объединением.

Явные шаги ниже.


Фаза 1: найдите коммит слияния (если вы ничего не сделали после неудачного слияния, перейдите непосредственно к фазе 2 и используйте HEAD^ для <bad-commit>)

# in case you're not presently on your branch
git checkout your-branch

# now we need to spot the merge commit where things went awry,
# it's probably not too far in your history, so spot its commit hash in the log
git log --oneline

В списке вывода вы сможете определить, что такое хеш коммита неудачного слияния, я просто буду использовать <bad-commit> для целипример.

Фаза 2: вернуться в историю

# Rewind history to the point just BEFORE the bad merge, so mind the caret
git reset --hard <bad-commit>^

В этот момент ваша ветвь находится в состоянии, в котором она находилась перед слиянием, но вынеобходимо принудительно перенести его на пульт дистанционного управления, чтобы отразить эту новую историю, поэтому обязательно сообщите об этом своим коллегам заранее, а затем

git push --force origin HEAD

(А поскольку вы не одиноки в проекте, возможно, возьмите посмотрите на --force-with-lease)

0 голосов
/ 15 февраля 2019

Я хочу добавить еще одну вещь с помощью Nivrutti pawar , в этом случае мы можем использовать git-reflog ссылку и проверять все наши действия на отдельном локальном компьютере и можем идти.незадолго до беспорядка и начать новую ветку.

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