Git 的常用指令,分为基础操作、分支管理、远程协作、撤销操作和高级功能五个部分,并附上实用示例:
一、基础操作(必会)
-
初始化仓库
git init # 在当前目录创建新仓库
-
克隆远程仓库
git clone https://github.com/user/repo.git # 克隆仓库到本地(默认克隆 master/main 分支)
-
查看状态
git status # 显示工作区和暂存区状态(红色=未跟踪/修改,绿色=已暂存)
-
添加文件到暂存区
git add file.txt # 添加单个文件 git add . # 添加所有修改和新文件 git add -u # 添加所有已跟踪文件的修改
-
提交更改
git commit -m "描述信息" # 提交暂存区的更改 git commit -am "描述" # 添加所有已跟踪文件并提交(跳过 git add)
二、分支管理(团队协作核心)
-
分支操作
git branch # 查看本地分支 git branch feature-login # 创建新分支 git checkout feature-login # 切换到分支 git checkout -b hotfix # 创建并切换分支(推荐)
-
合并分支
git merge feature-login # 将 feature-login 合并到当前分支 git merge --abort # 终止合并冲突
-
删除分支
git branch -d feature-old # 删除已合并的分支 git branch -D feature-old # 强制删除未合并分支
三、远程协作(多人开发必备)
-
连接远程仓库
git remote add origin https://github.com/user/repo.git
-
推送代码
git push origin main # 推送到远程 main 分支 git push -u origin feature # 首次推送并设置上游跟踪
-
拉取更新
git pull origin main # 拉取远程更新并合并(= fetch + merge) git fetch origin # 仅获取远程更新不合并
-
查看远程
git remote -v # 查看远程仓库地址 git remote show origin # 查看远程仓库详细信息
四、撤销操作(救命命令)
-
撤销工作区修改
git restore file.txt # 丢弃工作区修改(未 add)
-
撤销暂存区
git restore --staged file.txt # 将文件移出暂存区(撤销 add)
-
修改上次提交
git commit --amend # 修改提交信息/添加漏掉的文件
-
版本回退
git reset --hard HEAD^ # 回退到上一个提交(慎用!) git reset --soft HEAD~1 # 撤销提交但保留修改
五、高级功能(提升效率)
-
储藏更改
git stash # 临时保存工作区修改 git stash pop # 恢复最近储藏的内容
-
查看历史
git log --oneline --graph # 图形化显示提交历史 git log -p file.txt # 查看文件的修改历史
-
标签管理
git tag v1.0.0 # 创建标签 git push origin --tags # 推送所有标签到远程
-
比较差异
git diff # 工作区 vs 暂存区 git diff HEAD # 工作区 vs 最新提交 git diff branch1..branch2 # 比较两个分支
🚀 实用组合示例
-
日常开发流程
git checkout -b feature-payment # 创建新功能分支 git add . # 添加修改 git commit -m "添加支付功能" # 提交 git push origin feature-payment # 推送到远程 # 在 GitHub 创建 PR 请求合并到 main
-
紧急修复 Bug
git stash # 暂存当前工作 git checkout main # 切换到主分支 git pull origin main # 更新主分支 git checkout -b hotfix-login # 创建修复分支 # ...修复代码... git commit -am "修复登录崩溃" git push origin hotfix-login
-
同步他人修改
git fetch origin # 获取远程更新 git merge origin/main # 合并到当前分支 # 或使用 rebase(更整洁的历史) git rebase origin/main
📌 重要提示
- 提交前务必
git status
确认修改内容 - 频繁提交小修改,避免大块提交
- 推送前先拉取远程更新(避免冲突)
- 使用
.gitignore
文件忽略不需要跟踪的文件(如日志、编译产物)