1. Git 简介
Git 是一种流行的分布式版本控制系统,广泛用于管理代码和项目的版本。Git 由 Linux 的创始人 Linus Torvalds 开发,它的分布式特性使得每个开发者的本地仓库都能独立于中央仓库进行操作,极大地方便了团队合作和版本管理。
Git 主要用途包括:
- 跟踪代码变更历史
- 协助团队成员之间共享和协作代码
- 便于代码重构与版本回退
工作流程通常包括以下几个步骤:
- 初始化 Git 仓库:在项目目录中启动一个本地仓库
- 暂存文件:将文件的修改暂时存储在 Git 的暂存区
- 提交变更:将暂存区的修改提交到版本库
- 推送和拉取:将本地的变更推送到远程仓库,或者从远程仓库拉取最新的代码
2. SVN 与 Git 的对比
分布式 VS 集中式
- Git 是分布式版本控制系统,意味着每个开发者都拥有整个仓库的副本,可以独立操作和进行版本控制。
- SVN(Subversion)是集中式版本控制系统,所有代码存储在中央服务器上,开发者每次操作都需连接到服务器。
分支管理
- Git 的分支非常轻量级,创建和切换分支非常快速,这使得并行开发和多人协作变得更加高效。
- SVN 的分支相对笨重,创建和合并分支的操作需要更多的时间和资源。
性能与数据存储
- Git 使用内容哈希(SHA-1)来标识每个提交,性能高,且每个开发者本地都有完整的版本历史。
- SVN 使用递增版本号来标识提交,操作速度相对较慢,且版本历史完全存储在中央服务器。
数据可靠性
- Git 在每个开发者的本地仓库中保存代码的完整副本,因此即使中央仓库丢失,也不会导致数据丢失。
- SVN 所有数据依赖中央仓库,一旦服务器故障,可能会丢失未同步的代码。
3. Git 安装指南
根据不同操作系统的需求,安装 Git 的步骤略有不同:
Windows
- 访问 Git 官网:Git for Windows
- 下载并运行安装程序,保持默认设置完成安装。
Linux
在终端中使用以下命令:
- Ubuntu/Debian:
sudo apt install git - CentOS/Fedora:
sudo yum install git
下面我将使用ubuntu24.04作为示例
4. 常规操作与基本命令
创建新仓库
git init
这个命令会在当前目录下创建一个新的 Git 仓库。
添加文件到暂存区
、
git add <file_name>
或添加所有文件:
git add .
提交修改
git commit -m "提交信息"
查看状态
git status
查看当前仓库的状态,包括哪些文件被修改,哪些文件在暂存区等。
5. 版本回退技巧
Git 提供了灵活的版本回退功能,以便开发者可以回退到某个历史版本。
回退到上一个提交(保留修改)
git reset HEAD~1
强制回退到上一个提交(丢弃修改)
git reset --hard HEAD~1
注意:使用
--hard参数时会丢失本地修改,请谨慎操作。
6. 工作区与暂存区的区分
- 工作区(Working Directory) :这是你在本地机器上进行开发的地方,所有的修改都发生在工作区。
- 暂存区(Staging Area) :即
index,是 Git 记录文件修改状态的地方。你必须明确将修改添加到暂存区,才可以提交到仓库。 - 版本库(Repository) :Git 的核心,存储着所有的提交记录。
7. Git 撤销修改与删除文件
撤销文件修改
bash
复制代码
git checkout -- <file_name>
该命令会将文件恢复到最近一次提交的状态。
删除文件
git rm <file_name>
git commit -m "删除文件"
如果只想从 Git 中删除文件,但保留本地文件:
git rm --cached <file_name>
git commit -m "移除文件"
8. 远程仓库管理
添加远程仓库
git remote add origin <remote_url>
推送代码到远程仓库
git push origin <branch_name>
拉取远程仓库的代码
git pull origin <branch_name>
9. 创建与合并分支
创建分支
git branch <branch_name>
切换分支
git checkout <branch_name>
合并分支
git merge <branch_name>
10. 处理分支冲突
在合并分支时,如果两个分支修改了同一文件的同一部分,就会发生冲突。解决冲突的步骤如下:
-
使用
git status查看冲突文件。 -
编辑冲突文件,手动解决冲突。
-
添加冲突解决后的文件到暂存区:
git add <conflicted_file> -
提交合并:
git commit
11. 分支管理策略
常见的 Git 分支管理策略包括:
- 主分支:用于生产环境的稳定版本。
- 开发分支:用于日常开发,通常从主分支派生。
- 特性分支:用于开发某个特性,开发完成后合并回开发分支。
- 发布分支:用于准备发布的版本,包含最后的修复和测试。
- 热修复分支:用于快速修复生产环境中的紧急问题。
12. Bug 修复分支
当需要修复 bug 时,可以创建一个独立的 Bug 分支,进行修复后合并回主分支和开发分支。
git checkout -b bug/fix-xxx
修复完成后:
git commit -m "Fix bug xxx"
git push origin bug/fix-xxx
13. Git 多人协作
- 使用分支管理:避免多人在同一分支上同时修改,减少冲突。
- 定期合并:将自己的分支及时合并到主分支或开发分支,保持代码更新。
- 代码审查:通过 pull request 和 code review 保证代码质量。
14. 推送与抓取分支
推送当前分支到远程
bash
复制代码
git push -u origin <branch_name>
从远程仓库抓取最新分支
git fetch origin <branch_name>