Git 使用指南
1. 为什么必须学 Git?
Git 是目前世界上最先进的分布式版本控制系统(Distributed Version Control System)。
- 版本后悔药:随时回退到任何历史版本。
- 分布式安全:每个人的电脑都是一个完整的备份库。
- 分支黑魔法:低成本创建分支,让多任务并行开发变得极其丝滑。
2. 下载与安装
Windows
- 访问 Git 官网 下载。
- 安装时一路 “Next” 即可(建议勾选 “Git Bash Here”)。
- 验证:打开终端(CMD/PowerShell)输入
git --version。
macOS
- 推荐 (Homebrew):
brew install git - 或者直接安装 Xcode 开发工具:
xcode-select --install
Linux (Debian/Ubuntu)
Bash
sudo apt-get update
sudo apt-get install git
3. 核心概念与环境配置(必读)
3.1 三个区域
理解这三个区域是掌握 Git 的关键:
- 工作区 (Workspace):你电脑里能看到的目录,平时写代码的地方。
- 暂存区 (Index/Stage):临时存放改动的地方(
git add后进入这里)。 - 本地仓库 (Repository):安全存放数据的位置(
git commit后进入这里)。
3.2 首次配置
安装后必须设置身份,这会记录在每一次提交中。
Bash
git config --global user.name "你的昵称"
git config --global user.email "你的邮箱@example.com"
# 推荐:配置 Git 忽略文件权限变化(Windows用户建议设置)
git config --global core.filemode false
4. 常用命令速查(日常工作流)
4.1 基础操作
Bash
# 初始化仓库(新建项目)
git init
# 克隆远程项目
git clone https://github.com/user/project.git
# 查看状态(最常用的命令!)
git status
# 添加文件到暂存区
git add file.txt # 添加指定文件
git add . # 添加所有文件(推荐)
# 提交到本地仓库
git commit -m "feat: 完成了登录功能"
4.2 分支管理 (Branch)
Git 的杀手锏功能。不要一直在主分支写代码!
Bash
# 查看分支
git branch # 本地
git branch -a # 所有(包含远程)
# 创建并切换分支
git checkout -b dev # 创建并切换到 dev 分支
# 新版 Git 推荐写法:
git switch -c dev
# 切换分支
git checkout master
git switch master
# 合并分支(将 dev 合并到当前分支)
git merge dev
# 删除分支
git branch -d dev
4.3 撤销与回退(救命指令)
git checkout -- file:丢弃工作区的修改(未 add)。git reset HEAD file:把暂存区的修改撤销回工作区(已 add,未 commit)。git reset --soft HEAD^:软回退。撤销最近一次 commit,但代码保留在暂存区(适合”刚提交完发现漏了个文件”)。git reset --hard HEAD^:硬回退。彻底回到上个版本,工作区代码也会消失(慎用)。
5. GitHub / GitLab 交互实战
除了本地管理,我们通常需要将代码托管到远程平台。
5.1 配置 SSH Key(免密登录,关键!)
不想每次 push 都输入密码?必须配置 SSH Key。
- 生成密钥(在 Git Bash 或终端中):
Bash
ssh-keygen -t ed25519 -C "你的邮箱@example.com"(一路回车即可)
-
获取公钥:
- Windows:
cat ~/.ssh/id_ed25519.pub - 复制输出的那一串以
ssh-ed25519开头的字符。
- 添加到 GitHub:
- GitHub -> Settings -> SSH and GPG keys -> New SSH key。
- 粘贴公钥并保存。
-
测试连通性:
Bash
ssh -T [email protected] # 看到 "Hi username! You've successfully authenticated..." 即成功
5.2 关联远程仓库
如果你在本地写好了代码,想推送到 GitHub 新建的仓库:
Bash
# 1. 关联远程仓库 (origin 是默认别名)
git remote add origin [email protected]:你的用户名/仓库名.git
# 2. 推送本地分支到远程
git push -u origin main
# -u 参数表示关联,以后只需输入 git push 即可
5.3 开源协作流程 (Fork & Pull Request)
参与开源项目的标准姿势:
- Fork:在 GitHub 上将别人的仓库 Fork 到自己账号下。
- Clone:克隆自己账号下的那个仓库到本地。
- Branch:新建分支开发功能。
- Push:推送到自己的远程仓库。
- Pull Request (PR):在 GitHub 页面点击 “New Pull Request”,请求原作者合并你的代码。
6. 自建 Git 服务器 (私有化部署)
如果公司代码不想放在第三方平台,可以选择自建。
6.1 方案一:极简 Linux 服务器 (适合个人/小团队)
只要有一台 Linux 服务器,安装 Git 即可作为远程仓库。
- 服务器端:
Bash
# 在服务器创建一个裸仓库 (bare repository) # 裸仓库没有工作区,专门用于存放远程同步的数据 git init --bare /srv/git/my-project.git - 本地端:
Bash
git remote add self-host [email protected]:/srv/git/my-project.git git push -u self-host main
6.2 方案二:Gitea (强烈推荐)
- 特点:Go 语言编写,极轻量,单文件即可运行,安装极快。
- 界面:酷似 GitHub,功能齐全(Issue, Wiki, PR)。
- 适用:个人开发者、中小团队、树莓派/NAS 用户。
6.3 方案三:GitLab CE (企业级)
- 特点:功能极其强大,自带 CI/CD 流水线。
- 缺点:资源占用极高(建议至少 4GB 内存以上)。
- 适用:大型公司,需要复杂权限管理和自动化部署的团队。
7. 进阶技巧与最佳实践 (Pro Tips)
7.1 .gitignore (忽略文件)
有些文件(如密码、编译产物、系统日志)不应该提交。在项目根目录创建 .gitignore 文件。
常用模板:
代码段
# 忽略依赖包
node_modules/
dist/
target/
# 忽略系统文件
.DS_Store
Thumbs.db
# 忽略 IDE 配置
.idea/
.vscode/
*.log
技巧:不知道怎么写?访问 gitignore.io 自动生成。
7.2 Git Stash (暂存现场)
正在改 Bug,突然老板让你切分支改另一个紧急 Bug,但当前代码还没写完不想 Commit?
Bash
git stash # 将当前工作区“储藏”起来
git checkout hotfix # 去修紧急 bug...
# 修完切回来
git checkout dev
git stash pop # 恢复现场并删除储藏记录
7.3 Git Tag (打标签)
在发布版本时,打一个 Tag 标记里程碑。
Bash
git tag v1.0.0 # 打轻量标签
git tag -a v1.0.1 -m "修复版" # 打附注标签
git push origin v1.0.0 # 推送标签到远程
7.4 规范的 Commit Message
不要写 “update”, “fix” 这种无意义的提交信息。遵循 Conventional Commits 规范:
feat: 新功能 (feature)fix: 修补 bugdocs: 文档 (documentation)style: 格式(不影响代码运行的变动)refactor: 重构(即不是新增功能,也不是修改 bug 的代码变动)chore: 构建过程或辅助工具的变动
示例: git commit -m "feat: 增加用户注册接口"
7.5 给命令起别名 (Alias)
打字太累?设置简写!
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 st 即可查看状态
8. 图形化工具推荐
虽然命令行是基础,但图形化工具在查看历史差异时效率更高。
- VS Code (内置):最常用的选择,安装 GitLens 插件后更是如虎添翼。
- SourceTree:老牌免费工具,可视化做得很好。
- Fork:轻量、快速、颜值高(Mac/Win)。
- TortoiseGit:Windows 专属,集成在右键菜单中,适合习惯 SVN 的老用户。
9. 总结
Git 的学习曲线是“先陡后平”。
- 初学者:熟练掌握
add,commit,pull,push。 - 进阶:理解
branch,merge, 解决冲突。 - 高手:精通
rebase,cherry-pick, 工作流规范。
希望这份笔记能成为你开发路上的得力助手!