Как выбрать все коммиты у кого-то в одной ветке и вставить в другую? - PullRequest
0 голосов
/ 17 января 2020

Существует две ветви:

master: нет коммитов от пользователя A

branchA: есть некоторые коммиты от пользователя A, также некоторые tra sh коммиты от других пользователей

Теперь мне нужно вставить все коммиты из userA на branchA в master (сохранить дату).

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

Ответы [ 2 ]

1 голос
/ 17 января 2020

Вы можете написать быстрый вкладыш, чтобы сделать это. Сначала отфильтруйте коммиты по branchA по автору, получите их идентификатор фиксации, а затем выберите их на мастере.

$ git checkout master
$ git log branchA --author='userA' | awk '/commit/ {print $2}' | while read commit; do git cherry-pick $commit; done
0 голосов
/ 17 января 2020

Cherry-pick - то, что вам нужно.

Объединить указанный c коммит из одной ветви в другую довольно просто: используйте команду git cherry-pick.

Синтаксис:

git cherry-pick <commit hash>.

Вот как вы go делаете это.

Сначала запишите коммит ha sh используя команду git reflog или git log.

Затем переключитесь на ветку, в которой вы хотите объединить коммит, и запустите git cherry-pick с коммитом ha sh , как показано в приведенном ниже примере.

$ git cherry-pick d4d8e7c

Теперь вы объедините заданный коммит c из одной ветви в другую.

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