Files
Astral3D/docs/GIT_TUTORIAL.md
lyf cded246736 Add README and documentation files
- Add project README.md with overview
- Add GIT_TUTORIAL.md documentation

Made-with: Cursor
2026-03-12 23:06:17 +08:00

365 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Git 提交操作教程
本教程适用于 Astral3D 项目,包含日常开发中常用的 Git 操作流程。
---
## 基础配置
首次使用需配置用户信息(已完成):
```bash
git config user.name "用户名"
git config user.email "邮箱"
```
查看配置:
```bash
git config --list
```
---
## 远程仓库
项目远程仓库地址:`http://code-server:3000/lyf/Astral3D.git`
查看远程仓库:
```bash
git remote -v
```
---
## 常用操作流程
### 1. 拉取最新代码
```bash
# 拉取远程最新代码并合并到当前分支
git pull origin master
# 或者使用 fetch + rebase
git fetch origin
git rebase origin/master
```
### 2. 查看当前状态
```bash
# 查看工作区状态
git status
# 查看简略状态
git status -s
```
### 3. 查看文件变更
```bash
# 查看未暂存的变更
git diff
# 查看已暂存的变更
git diff --cached
# 查看具体文件的变更
git diff filename.java
# 查看最近几次提交
git log --oneline -5
```
### 4. 暂存文件
```bash
# 暂存单个文件
git add filename.java
# 暂存多个文件
git add file1.java file2.java
# 暂存所有变更
git add .
# 暂存所有 .java 文件
git add *.java
# 暂存目录
git add src/
```
### 5. 取消暂存
```bash
# 取消所有暂存
git reset
# 取消单个文件暂存
git reset filename.java
```
### 6. 撤销修改
```bash
# 撤销未暂存的修改(危险操作)
git checkout -- filename.java
# 撤销所有未暂存的修改
git checkout -- .
# 撤销已暂存的修改
git reset HEAD filename.java
git checkout -- filename.java
```
### 7. 提交变更
```bash
# 提交已暂存的变更
git commit -m "提交说明"
# 提交并添加说明(会打开编辑器)
git commit
# 修改最后一次提交(还没推送到远程)
git commit --amend -m "新的提交说明"
# 将暂存和提交合并为一步(适合小改动)
git commit -am "提交说明"
```
### 8. 推送到远程
```bash
# 推送到远程仓库
git push origin master
# 第一次推送并设置上游分支
git push -u origin master
# 简化写法(已设置上游分支后)
git push
```
### 9. 查看提交历史
```bash
# 查看详细提交历史
git log
# 查看简略历史
git log --oneline
# 查看最近5条
git log --oneline -5
# 查看分支合并历史
git log --graph --oneline --all
```
---
## 分支操作
### 1. 查看分支
```bash
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a
```
### 2. 创建分支
```bash
# 基于当前分支创建新分支
git branch feature-xxx
# 基于 master 创建新分支
git branch feature-xxx master
```
### 3. 切换分支
```bash
# 切换到分支
git checkout feature-xxx
# 创建并切换到新分支
git checkout -b feature-xxx
# 切换到上一个分支
git checkout -
```
### 4. 合并分支
```bash
# 切换到 master 分支
git checkout master
# 合并 feature-xxx 分支到当前分支
git merge feature-xxx
# 使用 rebase 合并(保持线性历史)
git rebase feature-xxx
```
### 5. 删除分支
```bash
# 删除本地分支(已合并)
git branch -d feature-xxx
# 强制删除本地分支
git branch -D feature-xxx
# 删除远程分支
git push origin --delete feature-xxx
```
---
## 标签操作
### 1. 创建标签
```bash
# 创建轻量标签
git tag v1.0.0
# 创建附注标签(带说明)
git tag -a v1.0.0 -m "版本说明"
# 为历史提交打标签
git tag -a v1.0.0 commitid -m "版本说明"
```
### 2. 查看和推送标签
```bash
# 查看标签
git tag
# 查看标签详情
git show v1.0.0
# 推送标签到远程
git push origin v1.0.0
# 推送所有标签
git push origin --tags
```
---
## 解决冲突
### 1. 识别冲突
```bash
# 查看冲突文件
git status
```
冲突文件会显示为 `both modified`
### 2. 手动解决冲突
打开冲突文件,会看到类似以下标记:
```
<<<<<<< HEAD
当前分支的代码
=======
合并进来的代码
>>>>>>> branch-name
```
手动修改后:
```bash
# 标记冲突已解决
git add filename.java
# 完成合并
git commit
```
---
## 暂存操作Stash
用于临时保存未提交的更改:
```bash
# 暂存当前更改
git stash
# 暂存并添加说明
git stash save "临时保存说明"
# 查看暂存列表
git stash list
# 恢复暂存的更改
git stash pop
# 删除暂存
git stash drop
```
---
## 常见问题
### 1. 代理问题
如果推送时遇到 503 错误,尝试设置代理排除:
```bash
export no_proxy="code-server,192.168.1.72,localhost,127.0.0.1"
git push origin master
```
### 2. 每次推送都要输入密码
可以配置凭证缓存:
```bash
# 缓存凭证 15 分钟
git config --global credential.helper cache
# 缓存更长时间(单位:秒)
git config --global credential.helper 'cache --timeout=3600'
```
### 3. 查看配置
```bash
# 查看所有配置
git config --list
# 查看特定配置
git config user.name
git config remote.origin.url
```
---
## 最佳实践
1. **提交前先拉取**:每次提交前先 `git pull origin master`
2. **保持提交原子性**:一个提交只做一件事
3. **提交说明清晰**:说明改了什么,为什么改
4. **不要提交敏感信息**:不要提交密码、密钥等
5. **使用 .gitignore**:排除不需要跟踪的文件(如 target/、.idea/