使用git的15个小建议

440 阅读5分钟

前言

如果要学习进阶路线和指南,建议先看这篇文章:Git 成长之路:新手到进阶的实用指南 - 掘金 (juejin.cn)

本文主要针对一些 Git 使用的要点做总结概述,保持碎片化学习,茶余饭后也来点小知识,不仅提升自己的技能,还能更好地理解和应用在日常工作和项目中。

image.png

正文

1. 始终先拉取最新代码

注意这里的“”,顺序很重要。

在开始新的工作或合并更改之前,使用git pull。确保你有最新的代码。

2. 避免在mastermain分支上直接工作

以前只有master分支,后来因为一些特殊的原因,部分平台的master分支名称变成了main

但是名称不影响其主分支的基础属性。

请使用git checkout -b new-feature创建一个新的分支来开发新功能。

3. 提交前检查差异

建议使用git diff查看您即将提交的更改。

4. 为每个提交编写清晰、有意义的提交消息

千万不要使用"fix bug"这种过于抽象的信息,而应该用"Refactor(ModuleA): Fix login issue when using OAuth"这种一眼就能看出做了什么的信息。

JetBrain用户可以尝试 Git Commit Template 插件,它会帮你结构化提交信息:

 <type>(<scope>): <subject>
 <BLANK LINE>
 <body>
 <BLANK LINE>
 <footer>

5. 在一个提交中避免包含多个不相关的更改

如果修复了两个不同的问题,请创建两个不同的提交。

这主要是为了代码审查和排错,当出现问题时能够更轻松地追踪到。

6. 定期与远程存储库同步

使用git fetchgit pull定期获取远程的更新。

如果用IDE工具,比如 VSCode 或者 IDEA,建议开启自动 fetch 的功能。

7. 解决合并冲突时要小心

git pullgit merge导致冲突时,务必仔细检查和解决每个冲突。

千万不要把代码搞丢了。

虽然搞丢了也有办法恢复,但毕竟耽误了功夫,能避免时则避免。

8. 不要强制推送

尽量不要使用git push -f,除非你确实知道自己在做什么。

这个命令可以强制推送更改,并且覆盖远程存储库的历史记录,可能会导致之前的提交被搞丢,而且会破坏提交历史的一致性,不利于记录追踪和问题排查。

一般来说还是建议合并和解决冲突后做正常地git push

9. 保持提交历史清晰

避免不必要的合并提交,可以使用git rebase

这可以使项目的历史记录更加清晰和易于理解,通俗的讲,可以让历史记录更干净,比如下面这样的线性记录:

image.png

10. 不要提交敏感信息

避免将密码、API密钥或其他敏感数据提交到 Git ,万一被不法之徒利用,后果不堪设想。

11. 善于使用.gitignore文件

将个人编辑器的配置、环境等与开发无关的文件/目录添加到.gitignore中,比如:

  • node_modules
  • .vscode
  • .idea
  • .hbuilderx

等等等等

12. 定期创建备份

除了推送到远程存储库外,还可以定期备份您的Git存储库。

可能不少人觉得这多此一举,但是万一哪天 Git 托管平台有问题了,比如被监管、被墙?然后

两者结合,实现更全面的数据保护。

可以选择将备份存储在不同的本地位置,如外部硬盘驱动器、网络附加存储或其他服务器上。此外,使用云存储服务,如阿里云 OSS、腾讯云 COS、Amazon S3、Google Cloud Storage等。

13. 避免更改已发布的历史

一旦提交被推送到公共分支或公共存储库,避免使用git rebasegit push -f更改它。

git rebase 可以重新排列提交的顺序或修改提交的内容,这可能会导致其他团队成员或协作者的工作历史与您的不一致,造成混淆,而强制推送也可能会导致历史记录丢失或覆盖。

往严重了说,可能会引发冲突和团队合作问题。

正确的做法应该是创建新的提交来修改之前的问题,而不是尝试更改历史记录。

14. 使用标签标记重要的提交或里程碑

发布新版本时,使用git tag v1.0.0

里程碑在项目管理中起着至关重要的作用,它有助于规划、监测和控制项目进展,围绕每个里程碑而展开的 Deadline、关键节点概念,有助于管控项目进度和目标,确保项目按时交付。

使用 tag 创建里程碑是个极好的选择。

同时也方便用户或团队成员更轻松地找到和下载特定版本的代码。

15. 在合并大的更改或新功能之前,进行代码审查

无论个人还是团队,代码审核都是一项重要实践,主要有以下好处:

  • 保证代码质量: 代码审查有助于确保所提交的更改符合团队的编码标准和最佳实践,有助于提高代码的质量,减少潜在的错误和 bug。
  • 发现问题: 这是代码审查最核心的作用,发现潜在的问题、漏洞或不一致性,早期发现并解决问题通常比在后期修复问题更加高效和经济。
  • 学习: 通过审查他人的代码,可以学习不同的编码技巧和最佳实践,反思自己的代码,查漏补缺达到学习的目的。
  • 风险管理: 这点和“发现问题”异曲同工,对于大型更改或新功能,代码审查可以帮助降低项目失败的风险,可以防止低质量的代码进入主分支,从而影响整个项目。

结合一些 Git 平台可以轻松实现代码审查,比如GitHub、GitLab、Bitbucket等。

结尾

继续保持学习的习惯,不断积累知识!

保持好奇心,持续探索新的领域,总有一天你会成为理想的自己。

愿世间美好与你环环相扣。

giphy2.gif