Git 的最佳实践

简介: Git 的最佳实践

约定Git规范

每个人都应当遵循对于分支命名、标记和编码的规范。每个组织都有自己的规范或者最佳实践,并且很多建议都可以从网上免费获取,而重要的是尽早选择合适的规范并在团队中遵循。

同时,不同的团队成员的 Git 水平参差不齐。你需要创建并维护一组符合团队规范的基础指令,用于执行通用的 Git 操作。

Commitizen 是一个格式化 commit message 的工具。简而言之,git commit 就是你在做一次修改后类似于写一个备注,现在 npm 安装了commitizen 后,你可以使用 git cz 取代 git commit,每次提交的时候可以选择本次 commit 的类型,这样 commit 的文本会更具有可读性。

正确合并冲突

每个团队成员都需要在一个单独的功能分支上开发。但即使是使用了单独的分支,每个人也会修改一些共同的文件。当把更改合并回 master 分支时,合并通常无法自动进行。可能需要手动解决不同的人对同一文件不同变更的冲突。这就是你必须学会如何处理 Git 合并的原因。

现代编辑器具有协助解决 Git 合并冲突的功能。它们对同一文件的每个部分提供了合并的各种选择,例如,是否保留你的更改,或者是保留另一分支的更改,亦或者是全部保留。如果你的编辑器不支持这些功能,那么可能是时候换一个代码编辑器了。

使用 git rebase 合并冲突,这意味着要经常执行以下步骤:

git pull --reabase origin master
// 改完冲突后重新提交代码
git add .
// 重新提交不要写提交信息
git rebase --continue
// 退出
git push origin feature-todo -f
// 再次提交到远端需要强推

这些步骤会在你的功能分支上重写历史(这并不是件坏事)。首先,它会使你的功能分支获得 master 分支上当前的所有更新。其次,你在功能分支上的所有提交都会在该分支历史的顶部重写,因此它们会顺序地出现在日志中。你可能需要一路解决遇到的合并冲突,这也许是个挑战。但是,这是解决冲突最好的时机,因为它只影响你的功能分支。

如果使用“纯合并”策略(git pull origin master),那么 master 分支的历史将穿插着所有同时开发的功能的提交。这样混乱的历史很难回顾。确切的提交时间通常并不是那么重要。最好是有一个易于查看的历史日志。

合并多个message

当你在功能分支上开发时,即使再小的修改也可以作为一个提交。但是,如果每个功能分支都要产生五十个提交,那么随着不断地增添新功能,master 分支的提交数终将无谓地膨胀。通常来说,每个功能分支只应该往 master 中增加一个或几个提交。为此,你需要将多个提交的 message 合并成一个或者几个带有更详细信息的提交。通常使用以下命令来完成:

git rebase -i HEAD~20
// 合并20个提交
git commit --amend
// 编辑完之后执行退出

最后,由于重写了分支的 Git 提交历史,必须强制更新远程分支。

使用标签

当你完成测试并准备从 master 分支部署软件到线上时,又或者当你出于某种原因想要保留当前状态作为一个里程碑时,那么可以创建一个 Git 标签。对于一个积累了一些变更和相应提交的分支而言,标签就是该分支在那一时刻的快照。一个标签可以看作是没有历史记录的分支,也可以看作是直接指向标签创建前那个提交的命名指针。

git tag v1.0.0 -m "1.0.0版本"

此外,如果带签名的 tag 有助于你的项目,可以考虑使用它们。

考虑这样一种情况:Git 标签对应的软件版本已经分发给客户,而客户报告了一个问题。尽管代码库中的代码可能已经在继续开发,但通常情况下为了准确地重现客户问题以便做出修复,必须回退到 Git 标签对应的代码状态。有时候新代码可能已经修复了那个问题,但并非一直如此。通常你需要切换到特定的标签并从那个标签创建一个分支:

git checkout v1.0.0
// 切换到分发给客户的标签
git checkout -b bugfix-todo
// 创建新的分支用于重现 bug

Git 是一个需要花时间去掌握的复杂工具。使用这些实践可以帮助团队更好的使用 Git 协作开发。

相关文章
|
6月前
|
存储 开发工具 git
Git的正确使用姿势与最佳事件:团队协作开发和版本控制的最佳实践
Git 是目前最流行的分布式版本控制系统之一,它提供了强大而灵活的工具来管理项目的版本和协作开发。无论您是个人开发者还是团队成员,掌握 Git 的使用方法都是必不可少的。本文将引导您从 Git 的基础知识开始,逐步探索 Git 的进阶功能。
|
17天前
|
Ubuntu 开发工具 git
Git高手必备:掌握这些版本控制最佳实践,让你的代码管理效率翻倍!
【10月更文挑战第25天】使用 Git 进行版本控制是现代软件开发的重要部分。本文详细介绍了 Git 的安装、配置、基本操作、分支管理、冲突解决及常用命令,帮助开发者提高工作效率,确保代码质量和团队协作的顺利进行。通过合理使用 Git,可以有效管理代码变更,支持多人协作,并追踪历史记录。
46 4
|
2月前
|
安全 网络安全 开发工具
深入探索Git:全面解析Git的用法与最佳实践
深入探索Git:全面解析Git的用法与最佳实践
57 2
|
2月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
199 1
|
5月前
|
开发工具 git 开发者
使用Git进行版本控制的最佳实践
【6月更文挑战第3天】使用Git进行版本控制的最佳实践包括:初始化配置Git仓库,设置个人信息和默认编辑器;提交信息要简洁明了,使用有意义的标题和描述;分支管理中,为新功能或修复创建分支,定期合并并保持主分支稳定;进行代码审查以保证质量;使用标签标记里程碑;忽略不必要的文件;定期备份仓库并学会恢复操作;不断学习和实践Git的高级用法。遵循这些实践可提升开发效率和代码质量。
|
6月前
|
存储 项目管理 开发工具
Git 版本控制:构建高效协作和开发流程的最佳实践
版本控制是软件开发的核心,促进团队协作与项目管理。通过制定明确的分支命名策略,遵循一致的代码提交规范,如指明提交类型和简短描述,增强了历史记录的可读性,可以清晰地组织和理解项目的结构与进展。
220 0
Git 版本控制:构建高效协作和开发流程的最佳实践
|
6月前
|
存储 开发工具 git
|
6月前
|
程序员 开发工具 git
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
177 1
|
开发工具 git
Git的正确使用姿势与最佳实践
本文介绍了在现代软件开发中使用Git的一些最佳实践,以帮助开发人员更好地掌握Git的正确使用方法。这些实践包括合理的分支管理策略、频繁提交和有意义的提交信息、定期拉取主分支并解决冲突、代码审查、使用标签进行版本控制、避免在主分支上直接提交代码、使用.gitignore文件、学会使用Rebase、备份和远程仓库、以及持续学习与实践。这些实践有助于提高团队的协作效率,同时也有助于保持项目的稳定性和可维护性。正确使用Git需要积累经验,不断学习和实践。
755 0
|
Cloud Native Go 开发工具
开源项目的版本管理:Git的最佳实践
开源项目的版本管理:Git的最佳实践
204 0