LAST233 commited on
Commit
08bab1f
·
verified ·
1 Parent(s): 0d193d5

Update autocommit.sh

Browse files
Files changed (1) hide show
  1. autocommit.sh +41 -11
autocommit.sh CHANGED
@@ -1,19 +1,49 @@
1
  #!/bin/bash
2
 
3
- # 设置环境变量(特别是 Git 相关的 PATH)
4
- export PATH=/usr/local/bin:$PATH
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
- # 注意:这里假设你已预先配置好远程仓库和认证(如使用令牌的URL)
15
- git push origin main
16
- echo "[$(date)] Auto-commit and push succeeded."
 
 
 
 
 
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