为什么 Git 是必备技能?

无论你是前端、后端、运维还是数据工程师,Git 都是必须掌握的技能。它是全球最流行的版本控制系统,GitHub、GitLab、Gitee 都基于 Git。掌握 Git 意味着你可以:

  • 追踪每一次代码修改,随时回滚到任意历史版本
  • 多人协作开发而不会覆盖彼此的工作
  • 通过分支(Branch)同时开发多个功能
  • 用 CI/CD 实现自动化测试和部署

安装和配置

apt install git -y # 配置用户名和邮箱(必须!) git config --global user.name "你的名字" git config --global user.email "your@email.com" # 查看配置 git config --list

基础工作流

你的日常工作流只有 5 个命令:

# 1. 初始化仓库(或克隆已有仓库) git init # git clone https://github.com/user/repo.git # 2. 查看状态 git status # 3. 添加文件到暂存区 git add . git add filename # 4. 提交更改 git commit -m "描述你做了什么修改" # 5. 推送到远程仓库 git push origin main

分支管理

分支是 Git 的杀手级功能。主分支保持稳定,新功能在独立分支上开发。

# 创建并切换到新分支 git checkout -b feature-login # 查看所有分支 git branch -a # 切换分支 git checkout main # 合并分支(把 feature-login 合并到 main) git checkout main git merge feature-login # 删除已合并的分支 git branch -d feature-login

解决合并冲突

当两个分支修改了同一个文件同一行时,合并会产生冲突。Git 会在文件中标记冲突位置:

<<<<<<< HEAD 你的修改 ======= 别人的修改 >>>>>>> feature-branch

手动编辑文件,保留需要的代码,删除标记行,然后:

git add . git commit -m "解决合并冲突"

回滚操作

每个人都有改错的时候,Git 帮你安全回退:

# 撤销工作区的修改(还没 git add) git checkout -- filename # 撤销暂存区的修改(git add 了但没 commit) git reset HEAD filename # 撤销最近一次 commit(保留修改) git reset --soft HEAD~1 # 查看提交历史 git log --oneline -10 # 回退到指定 commit git reset --hard 提交ID

注意git reset --hard 会彻底删除工作区的修改,谨慎使用。

Git 常用组合技

暂存当前工作(stash)

# 工作到一半需要紧急切换到其他分支 git stash # 暂存当前修改 git checkout other-branch # ... 处理紧急问题 ... git checkout 原分支 git stash pop # 恢复之前的工作

查看某行代码是谁写的

git blame filename

给提交打标签

git tag v1.0.0 git push --tags