在现代软件开发过程中,版本控制已经成为开发者必备技能。
无论是个人项目开发,还是多人团队协作,Git 都可以帮助我们:
- 管理代码版本
- 查看代码修改记录
- 创建独立开发分支
- 回滚错误提交
- 与团队成员协同开发
很多 Git 教程会罗列大量命令,但实际工作中真正高频使用的命令并不多。
本文根据日常开发场景整理了一套 Git 常用命令实战手册,每个命令都会结合实际使用情况说明,帮助你快速掌握 Git 的核心工作流程。
目录
- Git 基础配置
- Git 仓库创建与管理
- 提交代码的完整流程
- Git 分支管理
- 远程仓库操作
- Git 撤销与版本回滚
- 开发中的实用技巧
- Git 常见问题 FAQ
一、Git 基础配置
安装 Git 后,首先需要配置用户信息。
Git 会在每次提交代码时记录提交者信息,因此建议配置自己的用户名和邮箱。
设置用户信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
例如:
git config --global user.name "zhangsan"
git config --global user.email "[email protected]"
设置默认分支名称
目前 GitHub 新创建的仓库默认使用 main 分支,而不是以前常见的 master。
可以执行:
git config --global init.defaultBranch main
以后通过 git init 创建的新仓库都会默认使用 main 分支。
查看 Git 配置
git config --list
可以查看当前 Git 的所有配置。
二、Git 仓库操作
初始化 Git 仓库
进入项目目录:
git init
执行后,会生成一个隐藏目录:
.git
这个目录保存 Git 的版本信息,包括:
- 提交记录
- 分支信息
- 文件状态
通常不要手动修改 .git 文件夹内容。
克隆远程仓库
如果项目已经托管在 GitHub 或其他 Git 服务,可以使用:
git clone https://github.com/用户名/仓库名.git
如果仓库比较大,只需要最新代码:
git clone --depth 1 https://github.com/用户名/仓库名.git
--depth 1 会只下载最近一次提交,可以明显减少下载时间。
查看当前状态
git status
这是 Git 使用频率最高的命令之一。
它可以查看:
- 哪些文件被修改
- 哪些文件已经加入暂存区
- 哪些文件未被 Git 管理
- 当前所在分支
养成开发过程中经常执行 git status 的习惯,可以减少很多错误。
三、提交代码的完整流程
Git 提交代码通常分为三个步骤:
工作区
↓
暂存区
↓
本地仓库
对应命令:
git add
git commit
添加文件到暂存区
添加指定文件:
git add 文件名
添加所有修改:
git add .
创建提交记录
git commit -m "提交说明"
例如:
推荐:
git commit -m "修复移动端登录页面布局问题"
不推荐:
git commit -m "修改代码"
好的提交信息应该说明:
- 修改了什么功能
- 解决了什么问题
方便未来查看历史记录。
修改最近一次提交
如果发现漏提交文件:
git add 漏掉的文件
git commit --amend -m "新的提交说明"
注意:
如果该提交已经推送到远程仓库,不建议使用 --amend,否则可能造成历史冲突。
四、Git 分支管理
分支是 Git 最重要的功能之一。
实际开发中通常不会直接修改 main 分支,而是:
main
|
├── feature/login
|
├── feature/payment
|
└── bugfix/error
每个功能独立开发,完成后再合并。
创建和切换分支
创建分支:
git branch 分支名
切换分支:
git checkout 分支名
创建并切换:
git checkout -b 分支名
新版 Git 推荐:
git switch 分支名
查看分支
查看本地分支:
git branch
查看所有分支:
git branch -a
删除本地分支:
git branch -d 分支名
合并分支
切换到目标分支:
git checkout main
合并功能分支:
git merge feature/login
如果出现冲突:
- 修改冲突文件
- 添加文件
git add 文件名
- 提交解决结果
git commit -m "解决合并冲突"
五、远程仓库操作
添加远程仓库
git remote add origin 仓库地址
查看远程地址:
git remote -v
推送代码
首次推送:
git push -u origin main
之后:
git push
拉取远程更新
git pull
它会:
- 下载远程代码
- 合并到当前分支
获取远程分支
只获取信息,不自动合并:
git fetch
根据远程分支创建本地分支:
git checkout -b 新分支 origin/远程分支
六、Git 撤销与版本回滚
代码写错是开发中非常常见的问题。
Git 提供了多种恢复方式。
撤销文件修改
撤销单个文件:
git checkout -- 文件名
撤销全部修改:
git checkout -- .
注意:
这个操作会直接丢弃未保存修改。
移除暂存文件
如果执行:
git add .
后发现添加错误:
可以:
git reset HEAD 文件名
文件修改仍然保留。
撤销最近一次提交
保留修改:
git reset --soft HEAD~1
删除修改:
git reset --hard HEAD~1
--hard 非常危险,执行前需要确认。
安全回滚提交
查看历史:
git log --oneline
使用:
git revert 提交编号
revert 会创建一个新的提交,用来抵消之前的修改。
团队项目中更推荐使用 revert。
七、开发中的实用 Git 技巧
临时保存开发现场
开发过程中突然需要处理紧急 Bug:
git stash
恢复:
git stash pop
查看保存记录:
git stash list
查看代码修改者
git blame 文件名
可以查看:
- 每行代码作者
- 提交时间
- 提交记录
排查问题时非常有帮助。
查看漂亮的提交历史
git log --oneline --graph --all --decorate
可以以图形方式展示:
- 分支关系
- 合并记录
- 提交历史
建议设置快捷命令:
git config --global alias.lg "log --oneline --graph --all --decorate"
以后直接:
git lg
即可。
Git 常见问题 FAQ
Git 和 GitHub 有什么区别?
Git 是版本控制工具,负责管理代码历史。
GitHub 是基于 Git 的代码托管平台,用于保存代码和团队协作。
git pull 和 git fetch 有什么区别?
git fetch:
- 下载远程更新
- 不自动合并
git pull:
- 下载更新
- 自动合并
如果担心代码冲突,可以先使用:
git fetch
查看变化后再决定是否合并。
reset 和 revert 应该怎么选择?
个人本地代码:
可以使用:
git reset
团队共享代码:
推荐:
git revert
因为 revert 不会修改历史记录。
总结
日常开发中,并不需要记住 Git 的所有命令。
掌握下面这套流程,就可以覆盖绝大多数开发场景:
git checkout -b feature/new
git add .
git commit -m "完成新功能的备注或说明"
git push origin feature/new
git checkout main
git merge feature/new
Git 的核心不是命令数量,而是理解版本管理的思想。
熟练使用 Git,可以让开发过程更加安全、高效,也是程序员职业发展中非常重要的一项基础技能。