Вытащить изменения из вилки Github - PullRequest
39 голосов
/ 03 января 2011

Кто-то подписал мой проект на Github и внес некоторые изменения. Как я могу объединить изменения обратно в мою версию?

Кроме того, возможно ли добавить только определенный коммит?

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

Ответы [ 3 ]

47 голосов
/ 03 января 2011

Вытягивание одного коммита было бы выбором вишни и переписало бы идентификатор коммита (и пометил бы вас как коммиттера, сохранив автора).Процесс довольно прост, однако:

git fetch git://github.com/user/project.git
git cherry-pick <SHA-COMMIT-ID>

Вы получаете SHA из журнала репозитория, например:

git log --oneline

b019cc0 Check whether we have <linux/compiler.h>.
0920898 Include <linux/compiler.h> before including <linux/usbdevice_fs.h>.
cbf0ba1 Add DLT_DBUS, for raw D-Bus messages.
77ed5cd Libnl 2.x returns its own error codes, not errnos; handle that.

С git cherry-pick 0920898 вы вносите соответствующий коммит в свой текущийфилиал.

1 голос
/ 16 августа 2018

Существует потрясающий инструмент, который называется hub , который предоставляет полезные инструменты для очистки запросов на получение и обычно "помогает вам выиграть в git".

Одна полезная команда в этом контекстеis:

git am -3 <url>

Это позволяет вам получать изменения из URL-адреса и применять его коммиты / изменения к вашему текущему локальному git, даже не извлекая удаленный репозиторий (который пригодится прибольшие репозитории).

Если вы используете эту команду на веб-странице git коммита, который вы хотите получить, вы получите этот коммит в своем git.Еще более полезно: автор коммита сохраняется и не заменяется вами (как если бы вы использовали git rebase).Если вы подтолкнете это к своему репо, изменения будут зафиксированы вами , но автором является первоначальный автор.

Очень хороший ресурс по этой теме: this руководство Натаниэль Тэлботт.Он демонстрирует отличный рабочий процесс для работы с запросами извлечения вместо того, чтобы полагаться на «злонамеренную» кнопку запроса извлечения слияния на github.

1 голос
/ 19 ноября 2011

Попробуйте использовать / forkqueue на github. Там вы можете объединить коммиты с вашей вилкой.

Или перейдите на вкладку «Сеть» и выберите «Forkqueue»

...