#git
#git
Вопрос:
Я настроил git для подписи моих коммитов. Однако при выполнении перебазирования требуется подписывать каждую фиксацию с точки перебазирования. Сюда входят коммиты, которые я не писал.
Поскольку используемый мной токен занимает около 4 секунд для каждой подписи и также запрашивает мой пинкод, вы можете себе представить, что это сильно замедляет выполнение перебазирования. Есть ли способ убедить git не делать этого, сохраняя при этом поведение, при котором он подписывает мои коммиты по умолчанию?
Комментарии:
1. Вы только что обнаружили одну из основных причин, по которой почти никто не использует функцию подписи фиксации. Если вы подписываете только аннотированные теги, эта проблема исчезает.
Ответ №1:
Перебазирование в Git состоит из двух основных логических шагов:
- перематываем вашу ветку и применяем новые коммиты из исходной ветки, и
- повторное применение всех ваших коммитов поверх новой базы
Обратите внимание, что на втором шаге Git фактически создает новые коммиты, используя ваши исходные коммиты. Причина, по которой они на самом деле являются новыми фиксациями, заключается в том, что в целом содержимое может измениться, например, из-за разрешения конфликтов слияния.
Поскольку вы создаете новые коммиты, если вам требуется подпись, это требование будет применяться ко всем повторно применяемым коммит также во время перебазирования. Итак, ваши варианты здесь — либо смириться с текущим поведением, либо, возможно, попытаться отключить подпись.
Комментарии:
1. Я понимаю, что он создает новые коммиты, но он не делает их от моего имени, поэтому я ни в коем случае не хочу, чтобы к нему была прикреплена моя подпись.
2. Ну, что вы можете сделать? Вы тот, кто повторно применяет эти коммиты. Вы спрашиваете, может ли Git использовать чужую подпись? Даже если бы это было возможно, действительно ли этот другой человек хотел бы, чтобы это произошло?
3. @MartijnOtto это не делает их от моего имени , это так. У каждой фиксации есть автор и коммиттер. При перебазировании
git
сохраняется автор, но изменяется коммиттер, чтобы им был вы .