一、初始化与全局设置

# 初始化仓库(已有项目想纳入Git)
git init

# 配置全局用户名/邮箱(提交者信息)
git config --global user.name "你的名字"
git config --global user.email "you@example.com"

# 推荐:显示彩色 + 简洁日志别名
git config --global color.ui auto
git config --global alias.lg "log --oneline --graph --decorate --all"

二、获取 代码 (clone / remote)

# 1) 首次克隆(HTTPS)
git clone https://gitee.com/owner/repo.git 

# 2) 首次克隆(SSH,建议常用)
git clone git@gitee.com:owner/repo.git 

# 3) 查看/添加/修改远端
git remote -v
git remote add origin git@gitee.com:owner/repo.git
git remote set-url origin git@gitee.com:owner/repo.git

三、分支管理(创建/切换/重命名/删除/上游跟踪)

# 查看本地/远程分支
git branch        # 本地
git branch -a     # 本地 + 远程
git branch -vv    # 含上游跟踪信息 

# 创建分支(基于当前分支)
git branch feature/x 

# 直接创建并切换
git checkout -b feature/x

# 或 2.23+ 新语法(推荐)
git switch -c feature/x 

# 切换已有分支
git checkout dev
git switch dev 

# 将本地分支与远程同名分支建立跟踪关系(常用)
git branch --set-upstream-to=origin/dev dev

# 或者首次push时顺便设定上游
git push -u origin dev 

# 分支重命名(当前分支)
git branch -m 新名字

# 重命名其它分支
git branch -m 旧名 新名 

# 删除分支(本地)
git branch -d feature/x     # 安全删除(已合并)
git branch -D feature/x     # 强制删除(未合并) 

# 删除远程分支
git push origin --delete feature/xAI写代码bash

四、拉代码(更新本地)

# 拉取最新引用,但不合并(安全、快)
git fetch origin
git fetch --all --prune  # 多远端或清理已删远程分支 

# 将远端分支合并到当前分支(生成合并提交)
git pull                # 等价于 git fetch + git merge 

# 将本地提交“重放”到远端最新之上(历史更干净)
git pull --rebase 

# 更新当前分支到远端dev
git pull origin dev

建议:团队主干分支(如 dev/main)日常用 git pull --rebase,减少无意义的 merge 节点。

五、查看修改与暂存

git status              # 看工作区/暂存区状态
git diff                # 看未暂存的改动
git diff --staged               # 看已暂存的改动
git add <file>                  # 暂存指定文件
git add .                       # 暂存当前目录所有改动
git restore <file>              # 丢弃工作区改动(危险)
git restore --staged <file>     # 从暂存区移回工作区AI写代码bash

六、提交与 信息 编写

git commit -m "feat: 新增xxx"
git commit -m "fix: 修复xxx"
git commit --amend       
       
# 修改最近一次提交(包含信息/内容) 
# 提交规范(推荐)
# feat: 新功能
# fix: 修Bug
# docs: 文档
# refactor: 重构(不改功能)
# perf: 性能优化
# test: 测试
# chore/build/ci: 杂项/构建/CI

七、 推送 (首次/常规/强推)

# 首次把本地分支推到远端并建立上游
git push -u origin feature/x # 常规推送

git push # 修改了历史(rebase/amend/reset后)需要强推

git push --force-with-lease   # 更安全的强推

八、合并与变基(merge / rebase)

# 1) merge:保留分叉历史,简单稳妥
git switch dev
git merge feature/x 

# 2) rebase:让历史线性(提交“挪到”目标分支之后)
git switch feature/x
git rebase dev 
# 发生冲突后:修完文件 → git add 修冲突的文件 → git rebase --continue
# 放弃变基:git rebase --abort

九、挑拣提交 / 回滚 / 回退(cherry-pick / revert / reset)

# 1) 挑拣:把某个提交“复制”到当前分支
git log --oneline
git cherry-pick <commit> 

# 2) Revert(推荐):生成一个“反向提交”来撤销某次提交(保留历史)
git revert <commit> 

# 3) Reset(危险):移动分支指针(会改历史)
git reset --soft  <commit>   # 仅移动HEAD,保留暂存与工作区
git reset --mixed <commit>   # 默认,保留工作区,清空暂存
git reset --hard  <commit>   # 工作区也还原(不可逆!请三思)

十、暂存工作现场(stash)

git stash push -m "WIP: 正在做xxx"
git stash listgit stash show -p stash@{0}    # 查看内容
git stash pop                  # 恢复并删除这条stash
git stash apply stash@{2}      # 恢复但保留stash记录AI写代码bash

十一、查看历史(日志/对比/定位)

git lg                         # 前面设置的别名,清爽查看历史
git log --oneline --graph --decorate --all
git blame path/to/file         # 定位每行最后一次修改者
git show <commit>              # 查看某个提交详情
git diff <commit1> <commit2>   # 对比两次提交差异AI写代码bash

十二、标签(版本打点)

git tag                        # 列出标签
git tag v1.0.0                 # 轻量标签
git tag -a v1.0.0 -m "Release 1.0.0"   # 附注标签(推荐)
git push origin v1.0.0git push --tags                # 一次性推全部标签

十三、子模块(若项目里引用其它仓库)

git submodule add git@gitee.com:owner/libX.git third_party/libX
git submodule update --init --recursive
git pull --recurse-submodules

十四、常见 工作流 (直接套用)

A) 开新功能 → 提交 → 推远端 → 合并到 dev

git switch dev
git pull --rebase
git switch -c feature/plan-tracker
# 开发...
git add .
git commit -m "feat: 轨迹跟踪模块初版"
git push -u origin feature/plan-tracker# 
提 PR/MR 或在本地合并:
git switch dev
git pull --rebase
git merge --no-ff feature/plan-tracker
git push

B) 同步远端更新并继续开发(避免冲突)

git switch feature/plan-tracker
git fetch
git rebase origin/dev      # 把本地工作挪到最新dev之后
# 解决冲突 → git add … → git rebase --continue
git push --force-with-lease

C) 紧急修复(从 dev 切分支、修完合回)

git switch dev
git pull --rebase
git switch -c hotfix/xxx
# 修...
git commit -m "fix: xxx"
git switch dev
git merge --no-ff hotfix/xxx
git push
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐