Git 使用姿势与最佳实践笔记
引言
Git 是一个分布式版本控制系统,由 Linux 内核的创始人 Linus Torvalds 开发,用于有效、高速地处理从小到大的项目版本管理。
Git 的设计目标是速度、简单的设计和对非线性开发(即多个并行开发线)的支持。多人开发时,常用 Git 分支 来管理不同开发任务。每个人可以创建自己的分支进行开发,确保不同任务之间不会相互干扰,同时主分支保持稳定。
初始化和配置
在实践开始之前,我们必须完成一些必要的配置信息🤔
初始化仓库
git init
在项目目录中运行此命令来初始化一个新的 Git 仓库。这会创建一个名为 .git
的隐藏目录,其中包含了所有必要的版本控制文件。
全局配置
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
设置全局用户名和邮箱,以便在提交时使用。这些信息会随每次提交记录在版本历史中。也方便后续回溯。
下面,我们来完成四个小实践课题,分别包括
- 并行开发,提交变更
- 代码审查,冲突解决
- 标签与发布
- 回滚与维护
实践1:并行开发,提交变更
克隆仓库
在开始之前,我们需要拉取代码到本地。
git clone <仓库地址>
一般的远程仓库(如github)会有便捷按钮提供快捷下载的指令。
tips:有的时候,仓库文件会很大,而git默认的是全量拉取(即拉取本分支的全部数据,包括历史数据)。这时候可以使用
git clone --depth=1 http...
,这样只会下载最新一层的代码
拉取代码
git pull origin main
在开始工作前,从远程仓库的 main
分支拉取最新的代码,确保本地代码是最新的。
小步提交
git add .
git commit -m "Add a new feature"
频繁地提交小的变更,从规范性来讲每个提交应该只包含一个逻辑变更。
Tips:编写清晰、描述性的提交信息,便于理解每次提交的目的。
在vscode中,也为我们提供了可视化的git操作。
当检测到文件本身被修改时,可以使用 Ctrl+Enter 快捷键在 'main' 分支上提交。其下方还显示了更新的链路。
实践2:代码审查,冲突解决
Pull Request/Merge Request
若要对别人的开源仓库进行贡献,可以使用 Pull Request 或 Merge Request 来请求合并代码,这样可以进行代码审查。
点击创建拉取请求,即可开始
然后选择自己的fork仓库要合并的分支,点击确认,即可到达审核流程
审核通过后,代码就推送到别人的仓库中啦
合并前检查
git pull origin main --rebase
在合并之前,确保本地分支是最新的。
解决冲突
git mergetool
当合并时出现冲突,手动解决冲突后,提交解决冲突的变更。
实践3:标签与发布
版本标签
标签是一种用来标记特定提交的引用,通常用于标记发布版本。标签可以是轻量级的(仅是一个指向特定提交的引用)或注解标签(包含额外信息,如标签创建者、日期和标签消息)。
打标发布
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
使用 git tag
为重要的版本打上标签。
实践4:回滚与维护
紧急回滚
git revert <commit-hash>
在生产环境中出现问题时,能够快速回滚到上一个稳定版本。
结语
Git 的正确使用姿势和最佳实践能够帮助团队更高效地协作和控制版本。遵循这些实践,可以确保代码的质量和项目的顺利进行。通过这些详细的步骤和命令,团队可以更好地利用 Git 的强大功能,实现高效的版本控制和团队协作。