Это экстремальная оптимизация. Дуг Ли, автор класса, любит использовать. Вот сообщение в недавнем потоке в списке рассылки core-libs-dev об этом точном вопросе, который хорошо отвечает на ваш вопрос.
из сообщения:
... копирование в локаторы создает наименьший байт-код, а для низкоуровневого кода приятно писать код, который немного ближе к машине
blockquote>
Исправить ветку red
(история не изменится): Один из способов - вернуть revert-commit-1
& amp; revert-commit-2
затем объединить ветку blue
с веткой red
.
$ git checkout red # checkout to 'red' branch
$ git log # copy the 'revert-commit-2' & 'revert-commit-1' commit hash
$ git revert <revert-commit-2-hash>
$ git revert <revert-commit-1-hash>
$ git pull origin blue # merge the blue branch changes
Другой способ: Заменить текущую ветвь red
веткой purple
(история ветвей red
будет изменена)
# first backup the 'red' branch for just safety
$ git checkout red
$ git branch red.bac
# replace red branch with purple branch
$ git checkout purple
$ git branch -D red # delete 'red' branch
$ git checkout -b red # create & checkout to new local 'red' branch with 'purple' branch history
# now if you pushed the 'red' branch already then you need to do force (-f) push otherwise do normal push
$ git push -f origin red