Skip to content

Latest commit

 

History

History
172 lines (113 loc) · 7.27 KB

File metadata and controls

172 lines (113 loc) · 7.27 KB

Git 版本控制系统教程

引言: Git 是当今最流行的分布式版本控制系统之一。无论是个人项目还是大型团队开发,Git 都提供了强大而灵活的工具来管理代码版本和协作。 本教程将带您深入了解 Git 的各个方面,从基本概念到高级技巧,让您能够充分利用 Git 的功能。

目录:

Git 简介

1.1 什么是版本控制系统?

版本控制系统最重要的功能是实现团队合作。多个开发者共同开发一个程序项目时,无论项目大小,总要避免各自为营写自己的版本,也要避免重复造轮子。即使项目分工明确,也需要一个工具在合适的时机分发给其他团队成员。所以,版本管理系统就是这样能够允许多个开发者同时在同一个代码库上开发的工具。当然,多人同时在一个代码库里开发,就会有代码冲突(conflict),此时就需要代码合并(merge)等的功能。

其次,版本管理系统可以跟踪代码的历史记录(log)。每次提交(commit)都会被记录下来,你可以认为就备份下来了。这样,你可以查看其他开发者何时贡献了什么代码(常用于甩锅),随时回溯到特定版本的代码,比较不同版本之间的差异(diff)等等操作。

此外,版本管理系统允许你创建分支(branch),类似独立于主代码线的支线。比如我们常用的 chromaquda 项目里,主分支就是稳定(stable)版本,然后一堆 debug 分支用于测试,一堆 feature 分支来测试添加的新特性。这样可以在不影响主线的情况下进行新功能的开发、错误修复或实验性工作。理论上完成后,这些分支在经历过验证后合并回主线,作为新的稳定版本。

1.2 Git 历史

Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创建。

2005 年:Git 的首次公开发布。Linus Torvalds 在 Linux 内核邮件列表上宣布了 Git 项目,并将其源代码发布到了公共服务器上,供其他人下载和使用。后逐渐开发者社区中获得广泛认可。

2008年:GitHub 成立。GitHub 是一个基于 Git 的代码托管平台,为开发者提供了一个集中存储、分享和协作的平台。GitHub 的出现进一步推动了 Git 的普及和流行。

1.3 安装 Git

Linux 用户:几乎所有发行版都自带 Git。如果使用 oh-my-zsh 等 shell 美化插件,我推荐你加上 git 插件,能够简化一些常用的 Git 命令。

Windows 用户:

  • Git 网站 下载最新安装包。
  • winget install Git.Git
  • 有一些 Git GUI 客户端,比如 GitHub Desktop。但个人感觉不是特别常用,使用命令行配合 VSCode Git 集成(或许可以算上 GitLens 插件)已经满足大部分需求。

基本概念

2.1 仓库(Repository)

俗称repo。仓库(Repository)简单来说就是存放项目代码的一整个文件夹,包括 项目文件、历史记录和元数据。比如对于一个非裸仓库,它们就存储在 .git 里。

把一个文件夹设置为仓库。

cd ${你的文件夹}
git init .

在 Git 中,仓库有两种类型:本地仓库和远程仓库。

  • 本地仓库:本地仓库是存储在你本地计算机上的 Git 仓库。
  • 远程仓库(remote):远程仓库是位于远程服务器上的 Git 仓库。它可以作为团队协作和代码共享的中央存储库。远程仓库通常托管在代码托管平台(如 GitHub 、GitLab 、Bitbucket 等)上,团队成员可以将其本地仓库中的更改推送到远程仓库,或者从远程仓库拉取最新的更改。远程仓库允许多个开发者协同工作,共享代码并进行版本控制。 不是所有开发都必须以远程仓库(remote)为中心来开发,但团队协作中一般是这样干的。

2.2 提交(Commit)

2.3 分支(Branch)

2.4 远程仓库(Remote Repository)

Git 基本操作

3.1 初始化仓库

3.2 添加和提交文件

3.3 查看提交历史

3.4 分支操作

3.5 远程仓库操作

高级操作

4.1 合并与冲突解决

4.2 重写提交历史

4.3 标签管理

4.4 子模块(Submodule)

4.5 Git 忽略规则

团队协作

5.1 分支管理策略

5.2 协作工作流程

5.3 解决冲突

5.4 Pull Request 流程

5.5 使用 Git Hooks

高级技巧和工具

6.1 交互式重新基础(Interactive Rebase)

6.2 存档和备份

6.3 Git 命令别名

6.4 Git 图形界面工具

6.5 Git 扩展和插件

故障排除和常见问题

7.1 常见错误消息及解决方法

7.2 修复损坏的仓库

7.3 恢复删除的文件

Git 最佳实践

8.1 分支命名规范

8.2 提交信息规范

8.3 代码审查实践

8.4 定期清理和优化仓库

8.5 使用 Git 工作流程模型