183 lines
4.2 KiB
Markdown
183 lines
4.2 KiB
Markdown
# Git 自动上传脚本使用指南
|
||
|
||
本目录提供了三个版本的 Git 自动上传脚本,适用于不同操作系统。
|
||
|
||
## 📋 脚本说明
|
||
|
||
### 1. `git_push.sh` - Linux/Mac Bash 脚本
|
||
适用于 Linux 和 MacOS 系统。
|
||
|
||
**使用方法:**
|
||
```bash
|
||
# 给脚本添加执行权限(首次使用)
|
||
chmod +x git_push.sh
|
||
|
||
# 基本使用(交互式输入提交信息)
|
||
./git_push.sh
|
||
|
||
# 直接指定提交信息
|
||
./git_push.sh "feat: 添加新功能"
|
||
```
|
||
|
||
### 2. `git_push.bat` - Windows 批处理脚本
|
||
适用于 Windows 系统。
|
||
|
||
**使用方法:**
|
||
```cmd
|
||
# 基本使用(交互式输入提交信息)
|
||
git_push.bat
|
||
|
||
# 直接指定提交信息
|
||
git_push.bat "feat: 添加新功能"
|
||
```
|
||
|
||
### 3. `git_push.py` - Python 跨平台脚本(推荐)
|
||
适用于所有操作系统(Windows、Linux、Mac),需要 Python 3.6+。
|
||
|
||
**使用方法:**
|
||
```bash
|
||
# 基本使用(交互式输入提交信息)
|
||
python git_push.py
|
||
|
||
# 直接指定提交信息
|
||
python git_push.py "feat: 添加新功能"
|
||
|
||
# 多个单词的提交信息
|
||
python git_push.py "feat: 添加新功能和修复bug"
|
||
```
|
||
|
||
## 🚀 功能特性
|
||
|
||
所有脚本都包含以下功能:
|
||
|
||
1. **自动检测 Git 仓库**:检查当前目录是否为 Git 仓库
|
||
2. **显示更改状态**:显示将要提交的文件
|
||
3. **交互式确认**:在提交前确认操作
|
||
4. **智能提交信息**:
|
||
- 可以直接通过命令行参数指定
|
||
- 也可以交互式输入
|
||
- 默认提供带时间戳的提交信息
|
||
5. **自动添加文件**:自动添加所有更改的文件
|
||
6. **错误处理**:友好的错误提示和处理
|
||
7. **颜色输出**:支持彩色输出(Python 版本)
|
||
|
||
## 📝 使用示例
|
||
|
||
### 示例 1:基本使用
|
||
```bash
|
||
# Linux/Mac
|
||
./git_push.sh
|
||
|
||
# Windows
|
||
git_push.bat
|
||
|
||
# Python(跨平台)
|
||
python git_push.py
|
||
```
|
||
脚本会:
|
||
1. 显示当前更改的文件
|
||
2. 询问是否继续
|
||
3. 请求输入提交信息(或使用默认)
|
||
4. 自动添加、提交并推送
|
||
|
||
### 示例 2:指定提交信息
|
||
```bash
|
||
# Linux/Mac
|
||
./git_push.sh "fix: 修复用户注册bug"
|
||
|
||
# Windows
|
||
git_push.bat "fix: 修复用户注册bug"
|
||
|
||
# Python
|
||
python git_push.py "fix: 修复用户注册bug"
|
||
```
|
||
|
||
### 示例 3:提交多个文件的更改
|
||
```bash
|
||
# 脚本会自动检测所有更改的文件
|
||
./git_push.sh "feat: 添加Docker支持和优化内存配置"
|
||
```
|
||
|
||
## ⚙️ 配置说明
|
||
|
||
### 默认分支
|
||
脚本会自动检测当前分支并使用该分支进行推送。
|
||
|
||
### 远程仓库
|
||
确保已配置远程仓库:
|
||
```bash
|
||
# 查看远程仓库
|
||
git remote -v
|
||
|
||
# 如果未配置,添加远程仓库
|
||
git remote add origin <your-repo-url>
|
||
```
|
||
|
||
### 身份验证
|
||
如果推送时遇到身份验证问题:
|
||
|
||
1. **HTTPS 方式**:
|
||
- 需要输入用户名和密码(或访问令牌)
|
||
- 可以配置凭证助手避免每次输入:
|
||
```bash
|
||
git config --global credential.helper store
|
||
```
|
||
|
||
2. **SSH 方式**:
|
||
- 配置 SSH 密钥更安全
|
||
- 将远程 URL 改为 SSH 格式:
|
||
```bash
|
||
git remote set-url origin git@github.com:username/repo.git
|
||
```
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 问题 1:权限不足(Linux/Mac)
|
||
```bash
|
||
# 解决方案:添加执行权限
|
||
chmod +x git_push.sh
|
||
```
|
||
|
||
### 问题 2:Python 脚本无法运行
|
||
```bash
|
||
# 检查 Python 版本
|
||
python --version # 需要 Python 3.6+
|
||
|
||
# 如果系统中有多个 Python 版本
|
||
python3 git_push.py
|
||
```
|
||
|
||
### 问题 3:推送失败(认证问题)
|
||
- 检查远程仓库地址是否正确
|
||
- 确认已配置 SSH 密钥或访问令牌
|
||
- 可以手动执行 `git push origin <branch>` 测试
|
||
|
||
### 问题 4:没有需要提交的更改
|
||
- 脚本会检测是否有未提交的更改
|
||
- 如果没有更改,可以选择拉取远程更新
|
||
|
||
## 💡 建议
|
||
|
||
1. **推荐使用 Python 版本**(`git_push.py`):
|
||
- 跨平台兼容性最好
|
||
- 错误处理更完善
|
||
- 支持彩色输出
|
||
|
||
2. **提交信息规范**:
|
||
- 使用规范的提交信息格式,例如:
|
||
- `feat: 添加新功能`
|
||
- `fix: 修复bug`
|
||
- `docs: 更新文档`
|
||
- `chore: 更新配置`
|
||
- `refactor: 代码重构`
|
||
|
||
3. **定期提交**:
|
||
- 建议频繁提交小的更改
|
||
- 避免一次性提交大量更改
|
||
|
||
## 📚 相关文档
|
||
|
||
- [Git 官方文档](https://git-scm.com/doc)
|
||
- [提交信息规范](https://www.conventionalcommits.org/)
|
||
|