Если ваша основная ветка git log
выглядит примерно так:
commit ac72a4308ba70cc42aace47509a5e
Author: <me@me.com>
Date: Tue Jun 11 10:23:07 2013 +0500
Added algorithms for Cosine-similarity
commit 77df2a40e53136c7a2d58fd847372
Author: <me@me.com>
Date: Tue Jun 11 13:02:14 2013 -0700
Set stage for similar objects
commit 249cf9392da197573a17c8426c282
Author: Ralph <ralph@me.com>
Date: Thu Jun 13 16:44:12 2013 -0700
Fixed a bug in space world automation
и вы хотите объединить два верхних коммита, просто выполните следующие простые шаги:
- Первый, чтобы быть в безопасности, оформить второй последний коммит в отдельной ветке. Вы можете назвать отрасль как угодно.
git checkout 77df2a40e53136c7a2d58fd847372 -b merged-commits
- Теперь просто выберите ваши изменения с последнего коммита в этой новой ветви как:
git cherry-pick -n -x ac72a4308ba70cc42aace47509a5e
. (Разрешить конфликты, если они возникнут)
- Итак, теперь ваши изменения в последнем коммите есть в вашем втором последнем коммите. Но вы все еще должны совершить, поэтому сначала добавьте изменения, которые вы только что выбрали, а затем выполните
git commit --amend
.
Вот и все. Вы можете отправить эту объединенную версию в ветку "Объединенные коммиты", если хотите.
Кроме того, теперь вы можете отменить два последовательных коммита в вашей основной ветке. Просто обновите вашу основную ветку как:
git checkout master
git reset --hard origin/master (CAUTION: This command will remove any local changes to your master branch)
git pull