Похоже, что и вы, и другие основали свою работу на коде, который вы используете в качестве корневого коммита в вашем хранилище. Итак, сейчас у вас есть это:
A - B - C - D (master)
Работа другого разработчика также основана на коммите A
. Таким образом, правильное место для этого - A
.
Начните с создания и проверки ветки там: git checkout -b his_work <SHA1 of A>
(или в gitk, просто щелкните правой кнопкой мыши на коммите и выберите создать ветку).
Затем бросьте его работу и передайте ее. Чтобы быть милым, вы можете сделать это с git commit --author="His Name <his.email@somewhere>"
, чтобы показать, что это была его работа.
Теперь проверьте вашего мастера (git checkout master
) и объедините его ветку (git merge his_work
).
Вы должны получить следующее:
A - B - C - D - E (master)
\ /
X -----------
(his_work)
Просто для пояснения, вот что вы сделали:
A - B - C - D - X (his_work)
(master) ---->
Вы совершили его работу поверх вашей последней, а затем слили ее; слияние было ускоренным: поскольку мастер был предком ветви, которую вы слили, вы просто переместили мастера вперед к этому новому коммиту.