面向初学者和高级用户的全面 Git 教程

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本全面的 Git 教程为开发者提供了一种结构化的方法,用于理解和掌握版本控制系统。从基本概念到高级技术,本指南涵盖了有效管理源代码、与团队成员协作以及维护强大的开发工作流程所需的一切内容。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/commit("Create Commit") git/DataManagementGroup -.-> git/reset("Undo Changes") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/reflog("Log Ref Changes") git/BranchManagementGroup -.-> git/cherry_pick("Cherry Pick") git/BranchManagementGroup -.-> git/rebase("Reapply Commits") subgraph Lab Skills git/commit -.-> lab-392725{{"面向初学者和高级用户的全面 Git 教程"}} git/reset -.-> lab-392725{{"面向初学者和高级用户的全面 Git 教程"}} git/log -.-> lab-392725{{"面向初学者和高级用户的全面 Git 教程"}} git/reflog -.-> lab-392725{{"面向初学者和高级用户的全面 Git 教程"}} git/cherry_pick -.-> lab-392725{{"面向初学者和高级用户的全面 Git 教程"}} git/rebase -.-> lab-392725{{"面向初学者和高级用户的全面 Git 教程"}} end

初学者的 Git 基础

什么是 Git?

Git 是一个分布式版本控制系统(VCS),旨在在软件开发过程中跟踪源代码的更改。作为一个强大的源代码管理工具,Git 使开发者能够高效协作、管理项目版本并维护代码历史记录。

Git 中的关键概念

版本控制系统

版本控制系统帮助开发者管理和跟踪其代码库中的更改。Git 提供了几个基本功能:

功能 描述
跟踪更改 记录源代码中的修改
协作 多个开发者可以同时工作
版本历史 维护完整的项目历史记录
分支 创建独立的开发线路

Git 仓库结构

graph TD A[工作目录] --> B[暂存区] B --> C[本地仓库] C --> D[远程仓库]

在 Ubuntu 22.04 上安装 Git

sudo apt update
sudo apt install git
git --version

配置 Git

## 设置全局用户名
git config --global user.name "你的名字"

## 设置全局邮箱
git config --global user.email "[email protected]"

创建 Git 仓库

## 初始化一个新仓库
mkdir my-project
cd my-project
git init

## 克隆一个现有仓库
git clone

基本的 Git 工作流程

## 检查仓库状态
git status

## 将文件添加到暂存区
git add filename.txt
git add.

## 提交更改
git commit -m "初始提交消息"

## 查看提交历史
git log

Git 工作流程与分支

理解 Git 分支

Git 分支为并行开发提供了强大的机制,使开发者能够创建独立的开发线路,而不会影响主代码库。

分支类型

分支类型 用途
主分支(Main/Master) 主要的开发分支
功能分支(Feature Branches) 开发特定功能
热修复分支(Hotfix Branches) 快速解决关键问题
发布分支(Release Branches) 为生产发布做准备

分支工作流程可视化

gitGraph commit branch feature-login checkout feature-login commit commit checkout main merge feature-login

创建和管理分支

## 列出现有分支
git branch

## 创建一个新分支
git branch feature-authentication

## 切换到一个分支
git checkout feature-authentication

## 创建并切换到一个新分支
git checkout -b feature-payment

合并分支

## 切换到主分支
git checkout main

## 合并功能分支
git merge feature-authentication

## 使用特定的合并策略合并
git merge --strategy=recursive feature-payment

处理合并冲突

## 当冲突发生时
git status

## 手动解决文件中的冲突
## 编辑冲突文件
git add resolved-file.txt

## 完成合并
git commit -m "解决合并冲突"

高级分支管理

## 删除本地分支
git branch -d feature-authentication

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

## 列出所有远程分支
git branch -r

高级 Git 撤销技术

理解 Git 撤销与回滚

Git 提供了多种策略来撤销更改并管理提交历史记录,使开发者能够恢复以前的版本并有效地管理代码演变。

撤销策略比较

技术 范围 影响 使用场景
git revert 特定提交 创建新的提交 安全的公共历史记录
git reset 本地提交 修改提交历史记录 私有分支
git restore 工作目录 丢弃本地更改 临时修改

提交撤销工作流程

gitGraph commit commit commit revert

基本撤销操作

## 撤销上一次提交
git revert HEAD

## 撤销特定提交
git revert <提交哈希>

## 撤销多个提交
git revert <最早提交哈希>..<最新提交哈希>

高级撤销技术

## 撤销但不创建新提交
git revert -n <提交哈希>

## 中止正在进行的撤销
git revert --abort

## 解决冲突后继续撤销
git revert --continue

处理复杂场景

## 撤销合并提交
git revert -m 1 <合并提交哈希>

## 交互式撤销并手动解决冲突
git revert --no-commit <提交范围>

安全恢复策略

## 从之前的提交恢复文件
git restore --source=HEAD~3 filename.txt

## 丢弃未暂存的更改
git restore.

## 取消暂存更改
git restore --staged filename.txt

总结

通过掌握 Git 的核心原理,开发者能够显著提升他们的软件开发能力。本教程为学习者提供了在仓库管理、版本跟踪、分支策略和协作编码技术方面的实用技能,最终提高代码质量和团队生产力。