git从入门到实践

时间:2024-12-18 20:02:14

文章目录

    • 1. Git 基础概念
      • 什么是 Git?
      • Git 的核心概念
    • 2. 安装与配置
      • 安装 Git
      • 配置 Git
    • 3. 创建与管理本地仓库
      • 初始化一个 Git 仓库
      • 添加文件并提交
      • 查看状态与日志
    • 4. 分支与合并
      • 创建与切换分支
      • 合并分支
      • 删除分支
    • 5. 远程仓库
      • 关联远程仓库
      • 推送与拉取
    • 6. 冲突处理
    • 7. 标签管理
      • 创建标签
      • 推送标签
    • 8. 实际项目中的 Git 工作流
      • 常用工作流
    • 9. Git 高级功能
      • 撤销与回滚
      • 查看与比较
    • 10. 学习与实践资源

1. Git 基础概念

什么是 Git?

  • Git 是一个分布式版本控制系统,用于跟踪文件的更改,协调多个开发者的工作。
  • 与传统版本控制系统(如 SVN)不同,Git 的每个开发者都有一个完整的代码库副本。

Git 的核心概念

  • Repository(仓库):存放代码和版本历史的地方。
  • Commit(提交):保存代码快照。
  • Branch(分支):独立开发的时间线。
  • Merge(合并):将不同分支的更改整合到一起。
  • Remote(远程仓库):托管在服务器上的 Git 仓库(如 GitHub、GitLab)。

2. 安装与配置

安装 Git

  • Windows: 从 Git 官方网站 下载并安装。
  • Linux: 使用包管理工具安装:
   sudo apt-get install git # Ubuntu/Debian
   sudo yum install git     # CentOS/Fedora

配置 Git

  1. 设置用户名和邮箱(记录在每次提交中):

    git config --global user.name "Your Name"
    git config --global user.email "your_email@example.com"
    
  2. 查看配置:

    git config --list
    

3. 创建与管理本地仓库

初始化一个 Git 仓库

mkdir myproject
cd myproject
git init

添加文件并提交

  1. 添加文件到暂存区:

    git add <filename>
    git add .  # 添加所有文件
    
  2. 提交文件到版本库:

    git commit -m "Initial commit"
    
    • -m 后引号的内容为提交内容的说明

查看状态与日志

  • 查看当前仓库状态:

    git status
    
  • 查看提交历史:

    git log
    git log --oneline # 查看简易版提交历史
    

4. 分支与合并

创建与切换分支

  1. 创建分支:

    git branch new-branch
    
  2. 切换分支:

    git checkout new-branch
    git switch new-branch # 推荐
    
  3. 创建并切换分支:

    git checkout -b new-branch
    

合并分支

  1. 切换到主分支:

    git checkout main
    
  2. 合并分支:

    git merge new-branch
    

删除分支

git branch -d new-branch # 已合并
git branch -D new-branch # 未合并

5. 远程仓库

关联远程仓库

  1. 克隆远程仓库:

    git clone <repository-url>
    
  2. 添加远程仓库:

    git remote add origin <repository-url>
    

推送与拉取

  1. 推送本地更改到远程仓库:

    git push -u origin main
    
  2. 从远程仓库拉取最新代码:

    git pull origin main
    

6. 冲突处理

  1. Git 冲突通常发生在合并分支时。Git 会在冲突文件中标记冲突部分:

    <<<<<<< HEAD
    Your changes
    =======
    Incoming changes
    >>>>>>> branch-name
    
  2. 手动编辑文件解决冲突,然后标记为已解决:

    git add <filename>
    git commit
    

7. 标签管理

创建标签

  1. 创建轻量标签:

    git tag v1.0
    
  2. 创建带注释的标签:

    git tag -a v1.0 -m "Version 1.0"
    

推送标签

git push origin v1.0

8. 实际项目中的 Git 工作流

常用工作流

  1. Git Flow
    • 使用 maindevelop 作为主分支,结合 featurereleasehotfix 分支。
  2. Forking Workflow
    • Fork 仓库,在自己的分支上开发,完成后提交 Pull Request。
  3. Feature Branch Workflow
    • 每个功能在独立分支上开发,完成后合并到主分支。

9. Git 高级功能

撤销与回滚

  1. 撤销暂存区的更改:

    git reset HEAD <filename>
    
  2. 撤销文件改动:

    git checkout -- <filename>
    
  3. 回滚到某个提交:

    git reset --hard <commit-hash>
    

查看与比较

  1. 查看差异:

    git diff
    
  2. 查看文件的历史改动:

    git log -- <filename>
    

10. 学习与实践资源

  • 官方文档Git 官方文档
  • 交互式教程Learn Git Branching
  • Git 可视化工具:GitKraken、SourceTree
  • 书籍推荐:《Pro Git》(在线免费阅读