当前位置: 首页 > 知识库问答 >
问题:

如何避免 git 提交记录拧成麻花?

权玉泽
2024-07-17

图片.png

感觉这样的提交记录让人看的头晕,这是好事还是坏事呢?我觉得不太好,看着很花,但是我们每天就是有很多人提 commit 做功能,怎么办?

优雅的提交记录管理和分支管理是什么样子的?

共有1个答案

燕翔飞
2024-07-17

首先,非常肯定的告诉你,你这个git log没有任何问题,这就是正常的迭代历史。

git合并一共有两种方式,一种是merge,一种是rebase,你提出这个问题,是想要保持线性的提交历史,这种只有rebase能做到,但是从你现在的提交历史上看,提交非常频繁,这就是矛盾的,因为rebase能保持线性提交历史,但是频繁的提交会带来频繁的变基和重写git commitId,需要团队每个人深度理解rebase,减少commit的次数才行。

综上,还是merge更适合你们团队,但是呢你们团队可以做内部培训,规范一下大家的git操作,减少多人同时多分支开发的可能性,大概有以下措施:

  1. 尚未push到公共分支之前,多次提交合并,减少提交次数,使用git commit --amend -m 'xxx'
  2. 新建分支之前,确认变更基线,不要从过早的基线开始变更,小修小改的情况下,直接复制提交即可,尤其是hotfix场景,使用git cherry-pick commitId
  3. 提交代码(commit)前,先从远程拉取拉取最新修改,再进行commit
  4. 远程推送(push)代码前,可以将自己的提交变基到已有提交之后再推送,减去merge request的产生,使用git pull --rebase
  5. merge操作尽量快进式合并,减少merge request的产生,使用git merge -ff
 类似资料:
  • 我在PostgreSQL数据库中定义了一个类型和一个视图。 使用3.7版本上的代码生成,我得到了一个UDT记录类和一个表记录类,以及UDT POJO类和表POJO类。 生成的类有一个数组。 而在POJO中,我希望有一系列POJO,例如: 另一个有趣的事实是,pojo和类型的记录在文件夹中,而对于视图,它们在文件夹中:也许这有助于找到解决方案/解释。 根据要求,我附上了一个工作示例,该示例生成了我所

  • 如何避免在PHP MYSQLi中插入重复记录?这是我的剧本:

  • 嗨,我是Hadoop的新手,我发现在Java map reduce中使用SkipBadRecord类可以跳过任何输入格式的badrecords,所以我只想知道在Pig和Hive中是如何实现的?

  • 问题内容: 我正在尝试通过从客户端向服务器发送密钥和随机数来认证用户。 我的代码未向我显示客户端的响应。执行下面的代码时,我得到了一个空指针异常。 问题答案: 解决大多数问题的固定步骤: 阅读堆栈跟踪以确定哪一行代码引发NPE 在该行代码处设置一个断点 使用调试器,在遇到断点时,确定该行中的对象引用是 弄清楚为什么引用该文件(到目前为止,这是唯一实际的困难部分) 解决根本原因(也可能很困难)

  • 问题内容: 我有两个简单的Java代码。第一个将恒定功率定义为power = a.pow(b); 第二个将恒定功率定义为power = BigInteger.ONE.shiftLeft(b) 在命令行中设置内存标志- Xmx1024m,第一个代码可以正常工作,但是第二个代码却出现错误:java.lang.OutOfMemoryError:Java堆空间 我的问题:我应该在第二个代码中更改什么以避免

  • 问题内容: 我有一个用于将文本添加到现有.doc文件中的代码,它将通过使用apache POI将其另存为另一个名称。 以下是到目前为止我尝试过的代码 以下是我得到的 我已经添加了与此对应的所有jar文件,但仍然找不到解决方案。我对apache poi是陌生的,所以请帮我提供一些解释和示例。谢谢 问题答案: 从我对问题的评论中复制: 看起来您需要Apache POI发行版中的poi-ooxml-sc