Git 常用命令实战手册:程序员必学 Git 工作流程指南

在现代软件开发过程中,版本控制已经成为开发者必备技能。

无论是个人项目开发,还是多人团队协作,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

如果出现冲突:

  1. 修改冲突文件
  2. 添加文件
git add 文件名
  1. 提交解决结果
git commit -m "解决合并冲突"

五、远程仓库操作

添加远程仓库

git remote add origin 仓库地址

查看远程地址:

git remote -v

推送代码

首次推送:

git push -u origin main

之后:

git push

拉取远程更新

git pull

它会:

  1. 下载远程代码
  2. 合并到当前分支

获取远程分支

只获取信息,不自动合并:

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,可以让开发过程更加安全、高效,也是程序员职业发展中非常重要的一项基础技能。

发表评论