Как переместить все коммиты от конкретного пользователя в новую ветку? - PullRequest
11 голосов
/ 29 марта 2011

У меня есть «коммиты» от многих пользователей.Я хочу переместить все коммиты какого-либо пользователя в новую ветку.

Как я могу это сделать?

1 Ответ

22 голосов
/ 29 марта 2011

Найти все коммиты от одного автора и сохранить их хэш в файл:

git log --author=<author> --format=%H > /tmp/commit-by-x

Создайте новую ветку, которая не содержит коммит данного автора, поскольку вы не хотите применять их дважды. Для этого вы можете создать новую пустую ветку:

git checkout --orphan commits-by-x

Cherry-pick все коммиты этого автора (от самых старых до самых новых):

tac /tmp/commit-by-x | while read sha; do git cherry-pick ${sha}; done

Очевидно, что если вы хотите, чтобы это было успешно, изменения, внесенные автором-x, должны быть очень локализованы.

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