Повторяющийся мерзавец вишневый
git cherry-pick
не является идемпотентом в том смысле, что хэш-фиксация после выбора вишни зависит от текущего времени и текущего пользователя (как коммитер).
Я хотел бы иметь свойство идемпотентности, что означает двойную последовательность:
git reset --hard BASE-COMMIT
git cherry-pick INTERESTING-COMMIT
а потом еще раз:
git reset --hard BASE-COMMIT
git cherry-pick INTERESTING-COMMIT
приводит к тому же хешу фиксации в HEAD оба раза.
Есть ли способ сказать git повторно использовать имя коммиттера и дату коммиттера из исходного коммита?
1 ответ
Решение
Вы можете изменить дату фиксации, когда вы регистрируетесь в черри-кирке. Например:
git reset --hard BASE-COMMIT
export GIT_COMMITTER_DATE=$(git log -1 --format='%ct' INTERESTING-COMMIT)
git cherry-pick INTERESTING-COMMIT
Это предполагает, что пользователь также стабилен, в противном случае вам также нужно будет установить GIT_COMMITTER_NAME
а также GIT_COMMITTER_EMAIL
, как это:
export GIT_COMMITTER_NAME=$(git log -1 --format='%cn' INTERESTING-COMMIT)
export GIT_COMMITTER_EMAIL=$(git log -1 --format='%ce' INTERESTING-COMMIT)