前言
如果你是在因为害怕 github 的 commit 提交时间是在某个时间段, 并害怕被某些人发现.
恭喜你, 你可能跟我考虑的是一个问题.
通过下面的脚本(ChatGPT 提供), 将 commit 的时间调整至(18:00/19:00) 后.
建议 19:00, 18:00 左右的时间容易存在争议
脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| #!/bin/bash
if date --version >/dev/null 2>&1; then DATE_CMD="gnu" else DATE_CMD="bsd" fi
TODAY=$(date +"%Y-%m-%d")
if [ "$DATE_CMD" = "gnu" ]; then NINETEEN_TIME=$(date -d "${TODAY} 19:00:00" "+%s") else NINETEEN_TIME=$(date -j -f "%Y-%m-%d %H:%M:%S" "${TODAY} 19:00:00" "+%s") fi
LAST_COMMIT_TIME=$(git log -1 --format="%ct" 2>/dev/null)
if [ -z "$LAST_COMMIT_TIME" ]; then LAST_COMMIT_TIME=0 fi
commit_with_adjusted_time() { CURRENT_TIME=$(date "+%s")
if [ "$CURRENT_TIME" -lt "$NINETEEN_TIME" ] && [ "$LAST_COMMIT_TIME" -lt "$NINETEEN_TIME" ]; then COMMIT_TIME=$NINETEEN_TIME else COMMIT_TIME=$(($LAST_COMMIT_TIME + 1)) fi
LAST_COMMIT_TIME=$COMMIT_TIME
if [ "$DATE_CMD" = "gnu" ]; then FORMATTED_TIME=$(date -d "@$COMMIT_TIME" "+%Y-%m-%dT%H:%M:%S") else FORMATTED_TIME=$(date -j -f "%s" "$COMMIT_TIME" "+%Y-%m-%dT%H:%M:%S") fi
GIT_AUTHOR_DATE=$FORMATTED_TIME GIT_COMMITTER_DATE=$FORMATTED_TIME git commit -m "$1" --date="$FORMATTED_TIME"
echo "Commit created with time: $FORMATTED_TIME" }
if [ -z "$1" ]; then echo "Usage: $0 <commit-message>" exit 1 fi
commit_with_adjusted_time "$1"
|
使用
1 2
| chmod +x commit.sh ./commit.sh "commit message"
|