删除内容时的语义提交类型

Semantic commit type when remove something

当我删除一个功能时,使用哪种语义提交类型更好:featrefactor 或其他?

你应该使用 refactor,

  • 壮举:向代码库引入新功能
  • 修复:修补代码库中的错误
  • 重构:既不修复错误也不添加功能的代码更改

可以参考angular/CONTRIBUTING Commit Message Guidelines

使用refactor,因为你重构了你的代码。有一个关于Git Commit Msg的参考给你

根据定义,它是 refactor,因为:

refactor: A code change that neither fixes a bug nor adds a feature

删除功能当然是代码更改, 它既不修复错误也不添加功能。

但是,人们通常假设重构 不会引入重大更改 。并且删除功能 往往总是破坏 API,因为从 API 中删除了一个功能,这会破坏所有现有的系统,具体取决于该功能。

其他类型呢?缺少特征本身可以被认为是特征。例如,如果有人不喜欢密码登录的想法(每次登录都要输入密码很烦人),那么他们可能会认为没有密码登录的特性是一个特性。因此,删除一个特征可以被认为是添加一个新特征。同时,如果缺少一个特性本身可以被认为是一个特性,那么该特性的存在就可以被认为是一个错误。因此,删除一个功能可能被认为是修复了一个错误。因此删除一个特征既是 feat 又是 fix.

或者,我们可以假装问题不存在。一个设计良好的库不应该有不需要的特性。由于其他库和应用程序可能依赖于此功能,因此永远不应删除这些功能。但这个理想原则并不适用于每个图书馆。

所以我的建议是给这种类型的提交一个新的名字。

Exclamation marks 可用于表示重大更改。删除功能是一项重大更改。因此,有 refactor!:

refactor!: a BREAKING CHANGE that neither fixes a bug nor adds a feature