Git常用命令

23 阅读3分钟

以下是Git基础知识的系统梳理,涵盖核心概念、常用命令、分支管理及常见问题解决方案:


一、Git核心概念

  1. 版本控制的作用

    • 追踪文件变更历史,支持多人协作,可回退到任意版本。
  2. 分布式VS集中式

    • 集中式(如SVN):中央服务器存储所有版本,需联网操作。
    • 分布式(Git):每个用户拥有完整仓库副本,可离线工作。
  3. 核心区域

    • 工作区(Working Directory):本地文件目录。
    • 暂存区(Staging Area):临时存放待提交的修改。
    • 版本库(Repository):存储所有提交历史。

二、Git基础操作与命令

  1. 初始化与基础配置

    # 初始化仓库
    git init
    
    # 配置用户信息(全局)
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
    
  2. 提交代码

    # 添加文件到暂存区
    git add file.txt       # 添加单个文件
    git add .              # 添加所有修改
    
    # 提交到版本库
    git commit -m "提交说明"
    
  3. 查看状态与差异

    git status             # 查看工作区和暂存区状态
    git diff               # 比较工作区与暂存区的差异
    git diff --cached      # 比较暂存区与最新提交的差异
    
  4. 忽略文件(.gitignore)

    • 创建.gitignore文件,定义需忽略的文件/目录:
      # 忽略所有.log文件
      *.log
      # 忽略node_modules目录
      node_modules/
      

三、分支管理

  1. 分支操作

    # 创建分支
    git branch feature-1
    
    # 切换分支
    git checkout feature-1
    # 或创建并切换
    git checkout -b feature-1
    
    # 合并分支到当前分支
    git merge feature-1
    
    # 删除分支
    git branch -d feature-1
    
  2. 解决合并冲突

    • 冲突文件内标记冲突位置:
      <<<<<<< HEAD
      当前分支内容
      =======
      合并分支内容
      >>>>>>> feature-1
      
    • 手动编辑后提交:
      git add resolved-file.txt
      git commit -m "解决冲突"
      
  3. 分支策略(Git Flow)

    • main/master:稳定生产代码。
    • develop:集成开发分支。
    • feature/:功能开发分支。
    • hotfix/:紧急修复分支。

四、远程仓库协作

  1. 远程仓库操作

    # 添加远程仓库(默认别名origin)
    git remote add origin https://github.com/user/repo.git
    
    # 推送本地分支到远程
    git push -u origin main   # 首次推送需加-u
    git push                  # 后续推送
    
    # 拉取远程更新
    git pull origin main      # 拉取并合并
    git fetch origin          # 仅获取远程变更不合并
    
    # 克隆仓库
    git clone https://github.com/user/repo.git
    
  2. 跟踪远程分支

    # 创建本地分支并跟踪远程分支
    git checkout --track origin/feature-1
    

五、高级操作与问题修复

  1. 暂存更改(Stash)

    git stash          # 临时保存工作区修改
    git stash pop      # 恢复最近暂存的修改
    
  2. 撤销与回退

    # 撤销工作区修改(未add)
    git checkout -- file.txt
    
    # 撤销暂存区修改(已add)
    git reset HEAD file.txt
    
    # 回退到某次提交(保留工作区)
    git reset --soft <commit-id>
    
    # 彻底回退到某次提交(丢弃后续提交)
    git reset --hard <commit-id>
    
    # 生成反向提交以撤销某次更改(推荐公共分支使用)
    git revert <commit-id>
    
  3. 标签管理

    git tag v1.0.0          # 创建轻量标签
    git tag -a v1.0.0 -m "Release version 1.0.0"  # 含注释的标签
    git push origin --tags  # 推送所有标签到远程
    

六、常见问题与解决

  1. 恢复误删文件

    # 查看删除记录
    git log --diff-filter=D -- path/to/file
    
    # 恢复文件到最新提交
    git checkout HEAD^ -- path/to/file
    
  2. 查看提交历史

    git log                 # 查看完整历史
    git log --oneline       # 简洁模式
    git log --graph         # 图形化分支合并历史
    
  3. 找回丢失的提交

    git reflog              # 查看所有操作记录
    git checkout <commit-id># 切换到丢失的提交
    

七、最佳实践

  1. 提交规范

  2. 分支策略

    • 功能开发使用独立分支,避免直接修改主分支。
  3. 频繁提交

    • 小步提交,保持每个提交的独立性。

学习资源推荐

掌握这些基础知识后,可通过实际项目练习,逐步熟悉团队协作流程和复杂场景处理!