[2025-02-05 12:33:54]-自动同步
This commit is contained in:
63
git_sync.sh
Executable file
63
git_sync.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义日志函数,用于输出带有时间戳的日志
|
||||
log() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $1"
|
||||
}
|
||||
|
||||
# 检查是否在 Git 仓库中
|
||||
if [ ! -d .git ]; then
|
||||
log "当前目录不是一个 Git 仓库,请在 Git 仓库中运行此脚本。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. 暂存所有更改
|
||||
log "开始暂存所有更改..."
|
||||
git add . 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
log "暂存完成."
|
||||
|
||||
# 2. 提交更改
|
||||
log "开始提交更改..."
|
||||
commit_message="[$(date '+%Y-%m-%d %H:%M:%S')]-自动同步"
|
||||
git commit -m "$commit_message" 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
log "提交完成."
|
||||
|
||||
# 3. 推送更改到远程仓库
|
||||
log "开始推送更改到远程仓库..."
|
||||
git push origin main 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
log "推送完成."
|
||||
|
||||
# 4. 从远程仓库拉取最新代码
|
||||
log "开始从远程仓库拉取最新代码..."
|
||||
git fetch origin 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
|
||||
# 5. 解决冲突(如果需要)
|
||||
log "尝试合并远程分支到本地分支..."
|
||||
git merge origin/main --allow-unrelated-histories -X theirs 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
|
||||
# 检查是否存在冲突
|
||||
if [ $? -ne 0 ]; then
|
||||
log "检测到合并冲突,正在尝试自动解决冲突(以远程仓库为准)..."
|
||||
git checkout --theirs . 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
git add . 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
git commit -m "自动解决冲突" 2>&1 | while IFS= read -r line; do
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [GIT] $line"
|
||||
done
|
||||
log "冲突解决完成."
|
||||
fi
|
||||
|
||||
log "同步完成,所有操作结束。"
|
||||
Reference in New Issue
Block a user