Git 常用指令详解:从基础到进阶
作为开发者必备的版本控制工具,Git 的核心魅力在于其强大的命令行操作。本文将通过清晰的分类和丰富的示例,带你系统掌握 Git 常用指令,搭配直观的配图帮助理解,适合新手入门和进阶复习。
一、基础配置:初始化与身份设置
1. git init :初始化本地仓库
作用:将当前目录转换为 Git 仓库,生成隐藏的 .git 目录(存储版本控制数据)。
2. git config :设置用户签名
作用:区分不同开发者身份,签名信息会包含在提交记录中。
语法:
# 项目级配置(仅当前仓库生效)
git config user.name "YourName"
git config user.email "yourmail@example.com"
# 系统级配置(所有仓库生效)
git config --global user.name "YourName"
git config --global user.email "yourmail@example.com"
说明:项目级配置优先级高于系统级,首次使用 Git 必须设置,否则无法提交代码。
二、本地仓库操作:文件管理三步骤
1. git status :查看工作区状态
作用:显示文件修改状态(未跟踪、已修改、已暂存),辅助判断下一步操作。
示例输出:
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
2. git add <file/dir> :添加文件到暂存区
作用:将工作区的修改纳入暂存区,准备提交。
语法:
git add . # 添加当前目录所有文件
git add src/index.js # 添加单个文件
git add --all # 添加所有修改(包括删除的文件)
3. git commit -m "message" :提交暂存区到本地仓库
作用:将暂存区内容生成一个历史版本,附带提交说明。
语法:
git commit -m "feat: add login feature" # 标准提交信息
git commit -a -m "fix: update readme" # 自动暂存已跟踪文件并提交(不包含新文件)
说明:提交信息建议遵循 Conventional Commits 规范,便于团队协作。
三、分支管理:并行开发的核心
1. 分支操作基础
指令 说明
git branch 查看本地分支(当前分支带 * )
git branch -a 查看所有分支(含远程分支)
git branch <name> 创建新分支(不切换)
git checkout <name> 切换到已有分支
git checkout -b <name> 创建并切换到新分支
2. git merge <branch> :合并分支
步骤:
切换到目标分支(被合并的分支,如 main ):
git checkout main
合并来源分支(如 feature/login ):
git merge feature/login
冲突解决:
若合并时出现冲突,编辑器会显示 <<<<<<< 和 >>>>>>> 标记冲突区域,手动修改后执行:
git add <冲突文件>
git commit -m "fix: resolve merge conflict"
3. git branch -d <name> :删除分支
语法:
git branch -d feature/login # 安全删除(需先合并)
git branch -D feature/login # 强制删除(未合并也可删除)
四、远程仓库交互:代码同步
1. git clone <url> :克隆远程仓库
作用:将远程仓库完整复制到本地,自动初始化关联。
语法:
git clone https://github.com/username/repo.git
配图建议:展示克隆后本地目录结构,以及 .git 中记录的远程仓库地址。
2. git remote :管理远程仓库
指令 说明
git remote -v 查看远程仓库地址
git remote add origin <url> 添加远程仓库(名称默认 origin )
git remote set-url origin <new-url> 修改远程仓库地址
git remote rm origin 删除远程仓库关联
3. git push :推送本地分支到远程
语法:
git push origin main # 推送 `main` 分支到远程 `origin`
git push -u origin feature # 首次推送并建立追踪关系(后续可直接 `git push`)
git push --force origin main # 强制覆盖远程分支(危险操作,慎用!)
4. git pull :拉取远程更新并合并
语法:
git pull origin main # 拉取并合并 `origin/main` 到当前分支
git pull --rebase origin main # 用 Rebase 模式合并,保持线性提交历史
说明: git pull 等价于 git fetch + git merge ,先获取远程数据再合并到本地。
五、版本控制:回溯与修复
1. 查看提交历史
指令 说明
git log 详细日志(含哈希值、作者、时间)
git log --oneline 简洁单行日志
git reflog 查看所有分支的历史操作记录
2. git reset :回退版本
语法:
git reset HEAD^ # 回退到上一个版本(`^` 表示上一次,`~n` 表示前 n 次)
git reset --hard <commit-id> # 强制回退到指定版本(删除工作区未提交修改)
git reset --soft <commit-id> # 仅回退本地仓库,暂存区和工作区不变
3. git revert <commit-id> :撤销提交
作用:生成一个新提交来撤销指定提交的修改,避免直接修改历史(适用于远程分支)。
语法:
git revert <commit-id>
六、进阶技巧:高效开发
1. git stash :暂存未提交修改
场景:临时切换分支处理紧急任务,暂存当前未完成的修改。
语法:
git stash save "work in progress" # 暂存并添加备注
git stash list # 查看暂存列表
git stash pop # 恢复最近一次暂存并删除记录
2. git cherry-pick <commit-id> :复制提交到当前分支
作用:将其他分支的某个提交应用到当前分支,精准迁移代码。
语法:
git cherry-pick abc123 # 复制哈希值为 abc123 的提交
七、常用指令速查表
功能分类 指令 说明
初始化与配置 git init 初始化本地仓库
git config 设置用户签名
本地文件管理 git status 查看状态
git add 添加文件到暂存区
git commit 提交到本地仓库
分支管理 git branch 创建/查看分支
git checkout 切换分支
git merge 合并分支
远程交互 git clone 克隆远程仓库
git push 推送分支到远程
git pull 拉取远程更新并合并
版本控制 git log 查看提交历史
git reset 回退版本
git revert 撤销提交并生成新提交