Spaces:
Running
Running
Update autocommit.sh
Browse files- autocommit.sh +41 -11
autocommit.sh
CHANGED
|
@@ -1,19 +1,49 @@
|
|
| 1 |
#!/bin/bash
|
| 2 |
|
| 3 |
-
#
|
| 4 |
-
|
| 5 |
-
cd /home/cpp_competition || exit 1
|
| 6 |
|
| 7 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
if [[ -n $(git status --porcelain) ]]; then
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
git add .
|
| 11 |
-
# 提交,提交信息包含当前时间
|
| 12 |
git commit -m "Auto-commit: $(date '+%Y-%m-%d %H:%M:%S')"
|
| 13 |
-
|
| 14 |
-
#
|
| 15 |
-
git push origin
|
| 16 |
-
echo "[$(date)] Auto-commit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
else
|
| 18 |
-
echo "[$(date)] No changes to commit."
|
| 19 |
fi
|
|
|
|
| 1 |
#!/bin/bash
|
| 2 |
|
| 3 |
+
# 进入你的代码仓库目录
|
| 4 |
+
cd /home/coder/cpp_competition || exit 1
|
|
|
|
| 5 |
|
| 6 |
+
# 2. 定义分支名称
|
| 7 |
+
TARGET_BRANCH="auto-backup" # 专门用于自动提交的分支
|
| 8 |
+
BASE_BRANCH="main" # 基准分支,完成后切换回来
|
| 9 |
+
|
| 10 |
+
# 3. 检查是否有文件变动
|
| 11 |
if [[ -n $(git status --porcelain) ]]; then
|
| 12 |
+
echo "[$(date)] Changes detected. Starting auto-commit process..."
|
| 13 |
+
|
| 14 |
+
# 4. 确保位于基准分支,并获取最新代码(可选,避免冲突)
|
| 15 |
+
git checkout $BASE_BRANCH
|
| 16 |
+
git pull origin $BASE_BRANCH
|
| 17 |
+
|
| 18 |
+
# 5. 创建或切换到目标分支
|
| 19 |
+
# 检查目标分支是否存在(本地或远程)
|
| 20 |
+
if ! git show-ref --verify --quiet refs/heads/$TARGET_BRANCH; then
|
| 21 |
+
# 本地不存在,尝试从远程拉取
|
| 22 |
+
if git fetch origin $TARGET_BRANCH 2>/dev/null; then
|
| 23 |
+
git checkout -b $TARGET_BRANCH origin/$TARGET_BRANCH
|
| 24 |
+
else
|
| 25 |
+
# 远程也不存在,基于当前基准分支创建新分支
|
| 26 |
+
git checkout -b $TARGET_BRANCH
|
| 27 |
+
fi
|
| 28 |
+
else
|
| 29 |
+
# 目标分支已存在,切换过去
|
| 30 |
+
git checkout $TARGET_BRANCH
|
| 31 |
+
# 合并基准分支的最新更改(保持备份分支同步)
|
| 32 |
+
git merge $BASE_BRANCH --no-commit 2>/dev/null || true
|
| 33 |
+
fi
|
| 34 |
+
|
| 35 |
+
# 6. 添加所有更改并提交
|
| 36 |
git add .
|
|
|
|
| 37 |
git commit -m "Auto-commit: $(date '+%Y-%m-%d %H:%M:%S')"
|
| 38 |
+
|
| 39 |
+
# 7. 推送到远程的目标分支
|
| 40 |
+
git push origin $TARGET_BRANCH
|
| 41 |
+
echo "[$(date)] Auto-commit pushed to branch: $TARGET_BRANCH"
|
| 42 |
+
|
| 43 |
+
# 8. 切换回基准分支
|
| 44 |
+
git checkout $BASE_BRANCH
|
| 45 |
+
echo "[$(date)] Switched back to branch: $BASE_BRANCH"
|
| 46 |
+
|
| 47 |
else
|
| 48 |
+
echo "[$(date)] No changes to commit. Staying on current branch."
|
| 49 |
fi
|