工欲善其事,必先利其器。在版本控制的江湖中,Git 命令行 便是那柄最锋利的剑,而开发者身份则是你在代码世界的通行令牌。本章将带你完成从"零"到"能战"的跨越------安装 Git Bash、铸造开发者身份、掌握核心命令,让你的每一次提交都掷地有声。
一、Git Bash:Windows 下的利刃
Git Bash 是 Git for Windows 项目提供的一个轻量级开发环境,它本质上是一个基于 MinGW 的终端模拟器。它不仅包含 Git 版本控制工具,还集成了完整的 Linux 命令行环境------ls、cd、grep、awk 等常用命令均可直接使用。
安装步骤:
-
下载安装包 :访问 Git 官网 git-scm.com/download/win,根据系统位数选择 32 位或 64 位版本。
-
运行安装程序 :双击
.exe文件,按提示完成安装。建议自定义安装路径时选择无空格、无中文的目录(如D:\Environment\Git)。 -
验证安装 :安装完成后,在任意文件夹中右键单击,若出现 "Git Bash Here" 选项,即表示安装成功。
启动方式 :在任意目录右键选择 Git Bash Here,终端便会自动定位到当前目录。这一操作极大提升了日常使用的便捷性------无需手动 cd 切换路径。
二、开发者身份:Git 账号的铸造
Git 的每一次提交都会记录作者信息(用户名和邮箱)。这些信息不仅用于标识代码归属,在 GitHub、GitLab 等平台上,平台还会自动将提交与账号关联起来。
配置全局身份(推荐):
bash
git config --global user.name "你的名字"
git config --global user.email "your_email@example.com"
使用 --global 选项,这些配置将应用于当前用户的所有 Git 仓库。建议使用与 GitHub/GitLab 等平台一致的邮箱,以便平台自动关联你的提交记录。
配置仓库级身份(特殊场景):
若需要在某个特定仓库中使用不同的身份(例如个人项目用个人邮箱、公司项目用公司邮箱),只需去掉 --global 选项即可:
bash
cd /path/to/your/repo
git config user.name "另一个名字"
git config user.email "another@example.com"
配置的优先级:系统级 → 全局级 → 仓库级,后者覆盖前者。
GitHub 账号注册 :访问 github.com,点击右上角 Sign up ,填写邮箱、用户名和密码即可完成注册。注册后建议将本地 Git 的 user.name 和 user.email 设置为与 GitHub 账号一致的信息。
三、Git 命令枢钮:按场景分类的核心命令
以下按开发场景分类,覆盖日常工作中 90% 以上的操作需求。
3.1 仓库初始化与克隆
| 命令 | 说明 |
|---|---|
git init |
在当前目录初始化一个新的 Git 仓库 |
git clone <url> |
克隆远程仓库到本地 |
git clone -b <分支名> <url> |
克隆指定分支 |
git clone --depth 1 <url> |
浅克隆,只取最新提交,节省时间和空间 |
实操示例:
bash
# 新建项目并初始化
mkdir my-project && cd my-project
git init
# 克隆现有项目
git clone https://github.com/username/repo.git
3.2 日常核心操作(工作区 → 暂存区 → 仓库)
理解 Git 的三大区域 是掌握版本控制的基础:工作区 (你正在编辑的文件)→ git add → 暂存区 (待提交的快照)→ git commit → 仓库(历史版本记录)。
| 命令 | 说明 |
|---|---|
git status |
查看工作区和暂存区的文件状态 |
git status -sb |
短格式查看分支和文件状态 |
git add <文件> |
将指定文件添加到暂存区 |
git add . |
添加当前目录所有变更到暂存区 |
git add -p |
交互式暂存,逐块挑选改动加入暂存区 |
git commit -m "消息" |
将暂存区内容提交到本地仓库 |
git commit -am "消息" |
跳过 add,直接提交已跟踪的文件 |
git commit --amend |
修改最近一次提交信息 |
实操示例:
bash
# 标准提交流程
git status -sb # 查看当前状态
git add . # 添加所有改动
git diff --staged # 提交前查看暂存区内容[reference:34]
git commit -m "feat: 添加用户登录模块"
3.3 查看与比较
| 命令 | 说明 |
|---|---|
git log |
查看完整提交历史 |
git log --oneline |
一行一个提交,简洁展示 |
git log --graph --oneline |
图形化显示分支历史 |
git log --author="名字" |
按作者过滤提交 |
git diff |
查看工作区与暂存区的差异 |
git diff --staged |
查看暂存区与版本库的差异 |
git show <commit-id> |
查看某次提交的详细内容 |
3.4 分支管理(协作核心)
分支是 Git 最强大的特性之一------它允许你在不影响主代码的前提下,开辟独立分支开发新功能或修复 Bug。
| 命令 | 说明 |
|---|---|
git branch |
查看本地分支列表 |
git branch -a |
查看本地 + 远程全部分支 |
git branch <新分支名> |
创建新分支 |
git checkout <分支名> |
切换分支 |
git switch <分支名> |
切换分支(Git 2.23+ 推荐) |
git checkout -b <新分支> |
创建并切换分支 |
git switch -c <新分支> |
创建并切换分支(Git 2.23+) |
git merge <分支> |
将目标分支合并到当前分支 |
git merge --no-ff <分支> |
禁用快进合并,保留合并记录 |
git branch -d <分支> |
删除已合并的分支 |
git branch -D <分支> |
强制删除未合并的分支 |
git rebase -i HEAD~n |
交互式变基,整理最近 n 个提交 |
实操示例:
bash
# 开发新功能
git switch -c feature/payment # 创建并切换到新分支
# ... 编写代码 ...
git add . && git commit -m "feat: 支付功能"
git switch main # 切回主分支
git merge --no-ff feature/payment # 合并并保留分支记录
git branch -d feature/payment # 删除已合并的分支
3.5 远程仓库协作
| 命令 | 说明 |
|---|---|
git remote -v |
查看已关联的远程仓库 |
git remote add origin <url> |
添加远程仓库源 |
git push origin <分支> |
推送本地分支到远程 |
git push -u origin <分支> |
首次推送并关联远程分支 |
git pull origin <分支> |
拉取远程并合并到当前分支 |
git pull --rebase |
拉取并用变基方式合并 |
git fetch --prune |
拉取远程变化并删除失效引用 |
实操示例:
bash
# 关联远程仓库并首次推送
git remote add origin https://github.com/username/repo.git
git push -u origin main # -u 建立关联,后续只需 git push
3.6 撤销与回退(安全第一)
| 命令 | 说明 |
|---|---|
git reset HEAD <文件> |
将文件从暂存区撤回到工作区 |
git checkout -- <文件> |
丢弃工作区的修改 |
git reset --hard <commit-id> |
回退到指定版本(慎用!会丢失改动) |
git revert <commit-id> |
撤销某次提交(生成新的反向提交,安全) |
git stash |
暂存当前工作现场 |
git stash pop |
恢复并删除最近的 stash |
git reflog |
查看操作记录,找回丢失的 commit |
四、效率提升:配置别名与 Bash 技巧
配置 Git 别名,大幅缩短常用命令的输入时间:
bash
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --graph --oneline"
配置后,git st 等同于 git status,git lg 直接显示图形化日志。
Git Bash 中的文件操作命令:
| 命令 | 说明 |
|---|---|
ls / ls -a |
查看当前目录内容 / 包含隐藏文件 |
cd <目录> |
切换目录 |
mkdir <目录> |
创建目录 |
touch <文件> |
创建文件 |
cat <文件> |
查看文件全部内容 |
pwd |
显示当前绝对路径 |
五、命令速查总表(一页收藏)
| 分类 | 核心命令 |
|---|---|
| 初始化 | git init / git clone |
| 日常操作 | git status / git add / git commit / git diff |
| 查看历史 | git log / git show |
| 分支管理 | git branch / git switch / git merge / git rebase |
| 远程协作 | git remote / git push / git pull / git fetch |
| 撤销回退 | git reset / git revert / git stash / git reflog |
最佳实践提醒 :每次提交前先
git status -sb确认状态;提交信息使用现在时、简洁清晰;团队共享分支上慎用rebase,避免给协作者制造麻烦。