基础配置

1
2
3
# 设置全局用户名/邮箱(首次使用必须)
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

仓库操作

1
2
3
4
5
# 克隆仓库
git clone <仓库名>

# 初始化操作
git init

提交修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看当前文件状态
git status

# 单文件添加到暂存区
git add <文件名>

# 暂存所有文件
git add .

# 提交暂存区内容并添加描述
git commit -m "描述"

# 修改最近一次提交的描述(没有push时)
git commit --amend

分支管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看本地分支
git branch

# 查看所有分支(包括远程)
git branch -a

# 创建新分支
git branch <分支名>

# 切换分支
git checkout <分支名>

# 创建并切换分支
git checkout -b <分支名>

# 删除本地分支(需不在该分支上)
git branch -d <分支名>

# 强制删除未合并的分支
git branch -D <分支名>

远程协作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看远程仓库地址
git remote -v

# 拉去远程分支最新代码(会自动合并)
git pull origin main

# 推荐方式:先拉取再合并(更安全)
git fetch origin # 只下载不合并
git merge origin/main # 手动合并

# 推送本地分支到远程
git push origin <本地分支名>

# 删除远程分支
git push origin --delete <远程分支名>

合并与冲突

1
2
3
4
5
6
7
8
# 将 feature 分支合并到当前分支
git merge feature

# 冲突解决步骤:
1. 执行合并/拉取后出现冲突
2. 用 IDE 或编辑器手动修改冲突文件(搜索 >>>>> 标记)
3. 添加解决后的文件:git add conflicted_file.py
4. 完成合并:git commit

撤销操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 撤销工作区修改(危险!不可恢复)
git checkout -- filename.js

# 撤销暂存区的文件(保留工作区修改)
git reset HEAD filename.js

# 回退到某个 commit(保留工作区修改)
git reset --soft commit_id

# 彻底回退到某个 commit(慎用!)
git reset --hard commit_id

# 恢复被删除的分支(通过 reflog 查找 commit)
git reflog
git checkout -b recovered-branch commit_id

规范

分支

  1. main/master:生产环境代码
  2. develop:开发分支
  3. feat/xxx:功能分支

提交

git commit -m “fix: resolve login timeout issue”

开发流程

  1. git checkout -b my-feature # 本地新建分支
  2. 开发并提交代码
  3. git push origin my-feature # 推送到远程
  4. 在GitHub/GitLab创建Merge Request
  5. 代码审查后合并