标签: commit-message

为什么 git 提交的建议行长度为 50(摘要)和 72(正文)?

确切的数字有一些变化,但一般来说,提交消息的第一行和后续行长度有推荐长度或最大长度。消息正文的常见字符数似乎最多为 72 个字符,进一步建议限制为 50 个字符。

这些或其他常见的 git 提交行限制的原因是什么?

我听说 72 个字符的限制与 RFC 2045 中定义的建议电子邮件宽度限制 76 有关:

(5)(软换行符)Quoted-Printable 编码要求编码行的长度不超过 76 个字符。

git 函数在生成电子邮件时会向提交消息添加 4 个字符,这会要求提交行短于电子邮件限制。反过来,我知道电子邮件字符限制与旧终端系统的 ~80 个字符限制有关。

如果这确实解释了 72 个字符的限制,那么 50 个字符的限制从何而来? Subject:只有 9 个字符,因此在 50 之前添加只会得到 59。也许我们然后添加常用的 7 个字符缩写提交哈希 ID 和一个空格,这给了我们 67,还有 5 个备用字符。

git commit-message git-commit

12
推荐指数
1
解决办法
5001
查看次数

标记提交消息和变更集

我正在寻找一个解决方案,在提交消息中标记变更集.

对我来说,"标签"是这样的:

  • 代码清理
  • 用户可见的变化
  • 修改数据库结构(ALTER TABLE)
  • 文档更改

到目前为止我使用SVN,但想切换到git.如果有标准,很多工具,如trac,redmine,......都可以使用它.

我希望这回答这样的问题:

  • 如果我更新系统,客户可以看到哪些更改,或者只是维护更新?
  • 两个版本之间的数据库架构是否已更改?

背景:

到目前为止,我使用unison在DEV,TEST和PROD系统之间进行同步.但是unison对版本管理一无所知(这是SVN的版本).我想切换到git.我希望看到快速,有什么变化.

示例:我想看看TEST和PROD之间的变化.我不希望看到源代码更改,但提交消息.但有时最多有100个提交.在这里,我想要一个过滤器,以排除不重要的更改.

git version-control commit-message changelog

9
推荐指数
2
解决办法
3150
查看次数

GitHub 存储库中的“通过上传添加文件”提交消息是什么?

我看到很多在GitHub上这个仓库的提交信息:Add files via upload

在此处输入图片说明

但我无法弄清楚这个(可能)自动提交消息是如何制作的。我环顾四周寻找线索,但找不到任何将此提交消息设置为默认值或其他内容的参考。

为什么以及如何使用此消息完成某些提交?

commit-message github

9
推荐指数
1
解决办法
3406
查看次数

如何在git中编辑任何提交的提交消息?

假设我有3次未提交的提交.现在我想更改第一次或第二次提交的提交消息(为第三次提交更改它们很简单git commit --amend).怎么做?

git commit-message

8
推荐指数
2
解决办法
2915
查看次数

如何在分支后编辑Mercurial提交消息?

我在Mercurial存储库中有一些旧的提交消息应该更改(以调整一些新工具).我已经明白,必须在主存储库上完成此黑客操作,并且必须重新克隆所有本地存储库,因为所有后续更改集的校验和也将更改.

我已经尝试按照" 如何在Mercurial中编辑不正确的提交消息? "中的配方,但是使用MQ扩展我遇到了错误消息

X:\project>hg qimport -r 2:tip
abort: revision 2 is the root of more than one branch
Run Code Online (Sandbox Code Playgroud)

与Histedit非常相似

X:\project>hg histedit 2
abort: cannot edit history that would orphan nodes
Run Code Online (Sandbox Code Playgroud)

问题似乎是在变更集之后创建了分支.

如果我想改变补丁的内容,我可以看到它会变得如何变得混乱,但也许有一个我在编辑提交消息时错过的解决方法?

version-control mercurial commit-message

8
推荐指数
1
解决办法
3084
查看次数

如何编辑过去的git提交以从提交日志中删除我的密码?

我的问题:使用https:// URL时,cygwin git似乎没有正确提示凭据,所以我在URL中使用了用户名和密码.不幸的是,当我执行"get pull"时,它会自动提交包含密码的完整URL的消息.在我推动改变之前,我没有注意到这一点.

如何编辑旧提交消息以根除URL中的密码?

我的共享git repo在我自己的服务器上.如有必要,我可以对回购做手术.

关于如何更改配置的说明(即不使用Cygwin,不要使用https)是不必要的 - 我正在尝试处理已经完成的工作.

是的,我可以并且将刻录密码,但我仍然想修复它.

git commit-message commit

7
推荐指数
2
解决办法
3760
查看次数

打印 git commits 加入一行的正文

如何打印 git commits 以仅打印正文(没有标题的提交消息)但在一行中?所以提交正文行被连接起来,可能用空格分隔,并打印为一次提交的一行。

例如,有两个提交 A 和 B,命令:

$ git log --format=%b
Run Code Online (Sandbox Code Playgroud)

印刷:

Commit A, line A.1
Commit A, line A.2
Commit B, line B.1
Commit B, line B.2
Run Code Online (Sandbox Code Playgroud)

但我想得到:

Commit A, line A.1 Commit A, line A.2
Commit B, line B.1 Commit B, line B.2
Run Code Online (Sandbox Code Playgroud)

git commit-message git-log

7
推荐指数
1
解决办法
1200
查看次数

在功能完成之前提交类型

常规提交定义了几种类型提交信息喜欢featfixchoreci等。

我的问题是关于工作流程,如果我正在处理一个范围跨越几天工作的功能。作为一名优秀的开发人员,我想尽早并经常提交,但传统提交意义上的功能被定义为:

feat:该类型的提交为feat代码库引入了一个新功能(这与语义版本控制中的 MINOR 相关)。

所以这种类型的提交应该只使用一次(否则,CHANGELOG从这些提交中生成的将列出许多功能,而这些功能实际上只是特定功能的一部分)。

我想知道尽早并经常使用常规提交解决提交(和推送)的常见工作流程是什么?

每个人都会把他们的提交压缩成一个feat: ...类型提交吗?还有其他工作流程吗?

在压缩feat提交之前使用哪种类型的消息?

git commit-message conventional-commits

7
推荐指数
2
解决办法
1111
查看次数

如何在Mercurial进程内钩子中访问提交消息?

我一直在努力

def debug_hook(ui, repo, **kwargs):
    changectx = repo[None]
    ui.status('change.desc: %s\n' % changectx.description())
    return True
Run Code Online (Sandbox Code Playgroud)

但它总是打印一个空字符串.这是因为它是一个precommit钩子,而且消息还没有?或者我只是遗漏了一些明显的东西?

api mercurial commit-message pre-commit-hook

6
推荐指数
2
解决办法
903
查看次数

Git:在不触及索引的情况下更改HEAD commit的消息

我知道我可以使用,git commit --amend --file=path-to-my-new-message但这也将修改分阶段的更改.当然,我可以存储并稍后应用和删除存储,但有没有更快的解决方案来更改HEAD提交消息而不提交暂存的更改(和用户交互)?

git commit-message commit

6
推荐指数
2
解决办法
351
查看次数