可重复 git 樱桃挑选
Repeatable git cherry-pick
git cherry-pick
不是幂等的,因为在 cherry-picking 之后提交哈希取决于当前时间和当前用户(作为提交者)。
我想要幂等性 属性,这意味着序列的两倍:
git reset --hard BASE-COMMIT
git cherry-pick INTERESTING-COMMIT
然后又是:
git reset --hard BASE-COMMIT
git cherry-pick INTERESTING-COMMIT
两次在 HEAD 处产生完全相同的提交哈希。
有没有办法告诉 git 重用原始提交中的提交者姓名和提交者日期?
您可以在签入 cherry-pick 时修改提交日期。例如:
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)
git cherry-pick
不是幂等的,因为在 cherry-picking 之后提交哈希取决于当前时间和当前用户(作为提交者)。
我想要幂等性 属性,这意味着序列的两倍:
git reset --hard BASE-COMMIT
git cherry-pick INTERESTING-COMMIT
然后又是:
git reset --hard BASE-COMMIT
git cherry-pick INTERESTING-COMMIT
两次在 HEAD 处产生完全相同的提交哈希。
有没有办法告诉 git 重用原始提交中的提交者姓名和提交者日期?
您可以在签入 cherry-pick 时修改提交日期。例如:
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)