git 多个提交的转移日期

cgvd09ve  于 2023-11-15  发布在  Git
关注(0)|答案(2)|浏览(109)

不小心我设置了不正确的时间,我所有的提交都是错误的时间/日期,我想转移提交时间/日期(例如+8小时/ +10天)。
我已经找到了一个提交的解决方案,但我想知道它是否可以在一个分支中完成许多提交。我已经设法弄清楚如何更改日期,但我迷失了与rebase:

COMMITS=($(git rev-list $COM~..HEAD))
for COMMIT in "${COMMITS[@]}"
do
   COMMIT_DATE=$(git log $COMMIT -n1 --format=%aD)
   NEW_DATE=$(date -d "$COMMIT_DATE+30 days" -R)
   echo "I: $COMMIT FROM $COMMIT_DATE TO $NEW_DATE"
   GIT_COMMITTER_DATE="$NEW_DATE" GIT_AUTHOR_DATE="$NEW_DATE" git commit --amend --no-edit --date "NEW_DATE"
   ...... rebase command
done

字符串
如何正确地重定基?

vecaoik1

vecaoik11#

多亏了Joe的提示,我才能准确地写出我想要的东西,因此我将把它贴在这里给其他观众。

git filter-branch --env-filter '
COMMIT_DATE=$(git log $GIT_COMMIT -n1 --format=%aD);
NEW_DATE=$(date -d "$COMMIT_DATE+1 day" -R);
GIT_COMMITTER_DATE="$NEW_DATE"
export GIT_COMMITTER_DATE
GIT_AUTHOR_DATE="$NEW_DATE"
export GIT_AUTHOR_DATE
' SHA..HEAD

字符串

fae0ux8s

fae0ux8s2#

下面的代码将使用当前时间和日期重定最近3次提交的基:

NEW_DATE="$(date -R)"
NUM_COMMITS_TO_REBASE=3
GIT_SEQUENCE_EDITOR=: git rebase -i HEAD~${NUM_COMMITS_TO_REBASE} --exec "git commit --amend --date \"$NEW_DATE\""

字符串

相关问题