Git 使用指南

作者: secflag 分类: 开发工具 发布时间: 2026-02-05 21:43

1. 为什么必须学 Git?

Git 是目前世界上最先进的分布式版本控制系统(Distributed Version Control System)。

  • 版本后悔药:随时回退到任何历史版本。
  • 分布式安全:每个人的电脑都是一个完整的备份库。
  • 分支黑魔法:低成本创建分支,让多任务并行开发变得极其丝滑。

2. 下载与安装

Windows

  1. 访问 Git 官网 下载。
  2. 安装时一路 “Next” 即可(建议勾选 “Git Bash Here”)。
  3. 验证:打开终端(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 的关键:

  1. 工作区 (Workspace):你电脑里能看到的目录,平时写代码的地方。
  2. 暂存区 (Index/Stage):临时存放改动的地方(git add 后进入这里)。
  3. 本地仓库 (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。

  1. 生成密钥(在 Git Bash 或终端中):

    Bash

    ssh-keygen -t ed25519 -C "你的邮箱@example.com"
    

    (一路回车即可)

  2. 获取公钥

  • Windows: cat ~/.ssh/id_ed25519.pub
  • 复制输出的那一串以 ssh-ed25519 开头的字符。
  1. 添加到 GitHub
  • GitHub -> Settings -> SSH and GPG keys -> New SSH key。
  • 粘贴公钥并保存。
  1. 测试连通性

    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)

参与开源项目的标准姿势:

  1. Fork:在 GitHub 上将别人的仓库 Fork 到自己账号下。
  2. Clone:克隆自己账号下的那个仓库到本地。
  3. Branch:新建分支开发功能。
  4. Push:推送到自己的远程仓库。
  5. Pull Request (PR):在 GitHub 页面点击 “New Pull Request”,请求原作者合并你的代码。

6. 自建 Git 服务器 (私有化部署)

如果公司代码不想放在第三方平台,可以选择自建。

6.1 方案一:极简 Linux 服务器 (适合个人/小团队)

只要有一台 Linux 服务器,安装 Git 即可作为远程仓库。

  1. 服务器端

    Bash

    # 在服务器创建一个裸仓库 (bare repository)
    # 裸仓库没有工作区,专门用于存放远程同步的数据
    git init --bare /srv/git/my-project.git
    
  2. 本地端

    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: 修补 bug
  • docs: 文档 (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. 图形化工具推荐

虽然命令行是基础,但图形化工具在查看历史差异时效率更高。

  1. VS Code (内置):最常用的选择,安装 GitLens 插件后更是如虎添翼。
  2. SourceTree:老牌免费工具,可视化做得很好。
  3. Fork:轻量、快速、颜值高(Mac/Win)。
  4. TortoiseGit:Windows 专属,集成在右键菜单中,适合习惯 SVN 的老用户。

9. 总结

Git 的学习曲线是“先陡后平”。

  • 初学者:熟练掌握 add, commit, pull, push
  • 进阶:理解 branch, merge, 解决冲突。
  • 高手:精通 rebase, cherry-pick, 工作流规范。

希望这份笔记能成为你开发路上的得力助手!

发表回复

标签云
git