novel-doomsday-resurgence/scripts/git-daily.sh
唐天洛 bc9188b0fd feat(git-workflow): 添加 Git 工作流和脚本
包含:
- GIT_WORKFLOW.md - 详细的 Git 工作流规范
- scripts/git-setup.sh - Git 工作区初始化脚本
- scripts/git-daily.sh - 日常 Git 管理脚本
- scripts/git-novel-workflow.sh - 小说专用 Git 工作流
- 更新 .gitignore 排除子仓库的 .git 目录
- 添加 novel-tracker/ 目录
- 添加 projects/ 目录(排除子仓库 .git)
- 添加 tomato-novel/ 目录
2026-03-30 15:50:36 +08:00

75 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# Git 每日工作脚本
# 用于日常版本管理和备份
set -e
echo "📅 $(date '+%Y-%m-%d %H:%M:%S') - 开始 Git 日常管理..."
# 检查是否有未提交的变更
if [ -n "$(git status --porcelain)" ]; then
echo "📝 检测到未提交的变更..."
# 显示变更摘要
echo "变更摘要:"
git status --short
# 询问是否提交
read -p "是否提交这些变更? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
# 添加所有变更
git add .
# 生成提交信息
commit_msg="chore: 每日备份 $(date '+%Y-%m-%d %H:%M:%S')"
# 如果有特定类型的变更,更新提交信息
if git diff --cached --name-only | grep -q "novel/.*\.md$"; then
novel_files=$(git diff --cached --name-only | grep "novel/.*\.md$" | tr '\n' ' ')
commit_msg="feat(novel): 更新小说内容 - $novel_files"
elif git diff --cached --name-only | grep -q "\.py$"; then
script_files=$(git diff --cached --name-only | grep "\.py$" | tr '\n' ' ')
commit_msg="refactor(scripts): 更新脚本 - $script_files"
elif git diff --cached --name-only | grep -q "\.md$"; then
md_files=$(git diff --cached --name-only | grep "\.md$" | tr '\n' ' ')
commit_msg="docs: 更新文档 - $md_files"
fi
# 提交
git commit -m "$commit_msg"
echo "✅ 变更已提交: $commit_msg"
else
echo "⏸️ 跳过提交"
fi
else
echo "✅ 工作区干净,没有未提交的变更"
fi
# 检查是否有远程仓库
if git remote | grep -q origin; then
echo "🌐 检测到远程仓库 origin"
# 拉取最新变更
echo "⬇️ 拉取远程最新变更..."
git pull origin $(git branch --show-current)
# 推送本地变更
echo "⬆️ 推送本地变更到远程..."
git push origin $(git branch --show-current)
echo "✅ 远程同步完成"
else
echo "⚠️ 未配置远程仓库"
echo " 使用以下命令添加远程仓库:"
echo " git remote add origin <your-repo-url>"
fi
# 显示仓库状态
echo ""
echo "📊 仓库状态:"
git log --oneline -5
echo ""
echo "🎉 Git 日常管理完成!"