本文整理了一套 Git 常用命令清单,涵盖仓库创建、代码提交、分支管理、远程仓库、版本回退、冲突处理等核心内容,适用于日常开发与服务器部署场景。
一、Git 基础概念
Git 是一个 分布式版本控制系统,用于代码版本管理。
核心概念:
- 工作区(Working Directory)
- 暂存区(Index / Stage)
- 本地仓库(Local Repository)
- 远程仓库(Remote Repository)
二、初始化与克隆仓库
1. 初始化本地仓库
git init
当前目录会生成 .git 文件夹。
2. 克隆远程仓库
git clone 仓库地址
例如:
git clone https://github.com/username/project.git
指定目录名:
git clone 仓库地址 new-folder
三、基础提交流程
Git 提交的标准流程:
1️⃣ 查看状态
git status
2️⃣ 添加文件到暂存区
添加单个文件:
git add file.txt
添加所有文件:
git add .
3️⃣ 提交代码
git commit -m "提交说明"
进阶用法(修改最近一次提交)
git commit --amend
!会改历史,团队协作需谨慎
4️⃣ 查看提交记录
git log
简洁模式:
git log --oneline
四、分支管理(非常重要)
1. 查看分支
查看本地分支:
git branch
查看远程分支:
git branch -r
查看所有分支:
git branch -a
2. 创建分支
git branch dev
3. 切换分支
git switch dev
4. 创建并切换分支
git switch -c dev
5. 删除分支
git branch -d dev
强制删除:
git branch -D dev
五、合并分支
切换到主分支:
git switch main
合并 dev 分支:
git merge dev
六、远程仓库操作
1. 查看远程仓库
git remote -v
2. 添加远程仓库
git remote add origin 仓库地址
3. 推送代码
第一次推送:
git push -u origin main
以后:
git push
4. 拉取代码
直接拉取并合并:
git pull
等价于:
git fetch
git merge
七、版本回退(高频使用)
1. 查看历史版本
git log --oneline
2. 回退到指定版本
git reset --hard 版本号
⚠️ 会丢失之后的所有修改(包括工作区和暂存区),团队协作慎用。
3. 撤销工作区修改
git restore file.txt
4. 撤销暂存区
git restore --staged file.txt
八、查看文件差异
查看修改内容:
git diff
查看已暂存差异:
git diff --cached
九、解决冲突
当多人开发时可能出现冲突:
CONFLICT (content): Merge conflict in file.txt
处理步骤:
- 打开冲突文件
- 手动修改冲突代码
- 重新 add
- 再 commit
十、标签(Tag)管理
1. 查看标签
git tag
2. 创建标签
git tag v1.0.0
带说明:
git tag -a v1.0.0 -m "版本说明"
3. 推送标签
git push origin v1.0.0
推送所有标签:
git push --tags
十一、常见场景
1. 强制同步远程代码
git fetch --all
git reset --hard origin/main
2. 修改远程仓库地址
git remote set-url origin 新地址
3. 多次提交的功能分支合并提交到 master,只保留一条提交记录
4. 迁移仓库
十二、团队开发推荐规范
推荐分支模型:
- main:生产环境(现在主流是用main了)
- dev:开发环境
- feature/*:功能分支
- hotfix/*:紧急修复
开发流程:
- 从 dev 创建 feature 分支
- 开发完成后合并回 dev
- 测试完成后合并到 main
- 打 Tag 发布版本
十三、Git 配置
1. 设置用户名
git config --global user.name "你的名字"
2. 设置邮箱
git config --global user.email "你的邮箱"
3. 查看配置
git config --list
总结
Git 常用操作核心就几条:
- add
- commit
- push
- pull
- branch
- merge
- reset
熟练掌握这几条,日常开发和服务器部署基本没有问题。