【Git 全面操作指南(日常开发版)】

Git 全面操作指南(日常开发版)


一、Git 核心概念(理解原理才能用好工具)

  1. 仓库(Repository)

    • 本地仓库:存在本机的代码版本库(.git目录)。
    • 远程仓库:托管在 GitHub/GitLab 等平台的代码库(如 origin)。
  2. 三大区域

    • 工作区:你直接编辑的文件(未提交的修改)。
    • 暂存区(Staging Area):通过 git add 暂存的文件(准备提交)。
    • 版本库(Repository):通过 git commit 提交的永久快照。
  3. 分支(Branch)

    • 每个分支代表独立的开发线,默认主分支为 mainmaster

二、高频操作详解(附场景说明)

1. 初始化与基础配置

# 初始化本地仓库(在项目根目录执行)
git init

# 全局配置用户名和邮箱(首次使用必做)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

# 查看当前配置
git config --list

场景:新项目初始化或首次安装 Git 后配置身份。


2. 提交代码(日常开发核心)

# 查看当前文件状态(红字=未跟踪,绿字=已暂存)
git status

# 添加文件到暂存区(可指定文件或目录)
git add index.html      # 添加单个文件
git add src/            # 添加整个目录
git add .               # 添加所有修改(慎用,避免提交临时文件)

# 提交到版本库(必须写清晰的提交信息)
git commit -m "feat: 新增用户登录页面"

# 修改上一次提交信息(未推送时)
git commit --amend

场景:开发完成一个功能点后提交代码。
注意:提交信息建议遵循 Conventional Commits 规范(如 feat:, fix:, docs:)。


3. 分支管理(多人协作必备)

# 查看所有分支(当前分支前有 * 号)
git branch

# 创建并切换到新分支(推荐)
git switch -c feature/user-profile

# 切换到已有分支
git switch main

# 合并分支到当前分支(如合并 feature 到 main)
git merge feature/user-profile

# 删除本地分支(已合并的分支)
git branch -d feature/user-profile

# 强制删除未合并的分支(慎用)
git branch -D experiment

场景

  • 开发新功能时创建独立分支。
  • 修复 Bug 时从主分支创建 bugfix/xxx 分支。
  • 合并前确保主分支最新(先 git pull)。

4. 远程仓库协作(团队开发核心)

# 克隆远程仓库到本地
git clone https://github.com/yourname/project.git

# 查看远程仓库信息
git remote -v

# 拉取远程分支最新代码(推荐先拉再推)
git pull origin main

# 推送本地分支到远程
git push origin feature/user-profile

# 删除远程分支
git push origin --delete feature/old

场景

  • 从公司 GitLab 克隆项目开始开发。
  • 每天上班先 git pull 避免代码冲突。
  • 开发完成后推送分支并发起 Merge Request。

5. 撤销与回退(紧急救援)

# 撤销工作区的修改(未 add 的文件)
git restore index.html

# 撤销暂存区的修改(已 add 但未 commit)
git restore --staged index.html

# 回退到某次提交(彻底丢弃后续修改)
git reset --hard a1b2c3d

# 临时保存未提交的修改(切换分支前)
git stash
git stash pop           # 恢复最近一次储藏

场景

  • 写错代码想还原到上次提交状态。
  • 误添加文件到暂存区需取消。
  • 紧急修复 Bug 需切换分支但当前代码未完成。

6. 解决冲突(团队协作必会)

# 拉取代码时出现冲突
git pull origin main

# 手动编辑文件,解决冲突标记(<<<<<<< 和 >>>>>>>)
# 冲突标记示例:
# <<<<<<< HEAD
# 本地修改
# =======
# 远程修改
# >>>>>>> a1b2c3d

# 解决后标记为已解决
git add resolved-file.txt
git commit -m "fix: 解决合并冲突"

场景:多人修改同一文件后,Git 无法自动合并,需手动处理。


三、完整工作流程案例

案例1:开发新功能

# 1. 从主分支创建新分支
git switch -c feature/search

# 2. 开发代码并测试...
git add search.js
git commit -m "feat: 添加商品搜索功能"

# 3. 推送分支到远程
git push origin feature/search

# 4. 在 GitHub 创建 Pull Request(代码审查)

# 5. 审查通过后合并到 main
git switch main
git pull origin main
git merge feature/search
git push origin main

案例2:修复线上 Bug

# 1. 从主分支创建热修复分支
git switch -c hotfix/login-error

# 2. 修复并提交
git add login.php
git commit -m "fix: 解决登录超时问题"

# 3. 测试后合并到 main 和开发分支
git switch main
git merge hotfix/login-error
git push origin main

git switch dev
git merge hotfix/login-error
git push origin dev

四、最佳实践与避坑指南

  1. 提交规范

    • 使用 feat:, fix:, docs:, style:, refactor:, test:, chore: 前缀。
    • 示例:git commit -m "feat: 新增购物车页面"
  2. 分支命名

    • 功能分支:feature/功能名称
    • Bug 修复:bugfix/问题描述
    • 热修复:hotfix/问题描述
  3. 每日工作流程

    git pull origin main     # 上班先拉最新代码
    git switch -c feature/xx # 创建新分支开发
    ...                      # 写代码、测试
    git add .                # 添加修改
    git commit -m "..."      # 提交
    git push origin feature/xx # 下班前推送
    
  4. 必须避免的操作

    • 禁止直接在主分支开发(应创建新分支)。
    • 禁止强制推送 (git push -f) 到公共分支。
    • 提交前检查 .gitignore,避免提交敏感信息(如密码、node_modules)。

五、常用命令速查表

操作场景命令
查看状态git status
查看提交历史git log --oneline --graph
比较差异git diff
回退到某次提交git reset --hard commit_id
查看远程仓库git remote -v
拉取并合并远程代码git pull origin main --rebase
打版本标签git tag -a v1.0.0 -m "Release"
清理无效远程分支记录git fetch --prune

掌握以上内容,你已经能应对 90% 的日常开发场景。遇到问题时,记住:

  1. 先用 git status 查看状态
  2. 善用 git restoregit reset 撤销操作
  3. 复杂操作前备份代码(创建临时分支或 git stash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值