你如何注释分支?

Wil*_*ell 49 git

有没有办法注释分支?能做这样的事情会很高兴:

$ git notes add branch-name -m 'This branch is for whatever'

但这当然不是非常有用,因为该注释适用于当前的分支头而不是分支本身.

一个简单的解决方法是在存储库中删除README.branch-name,但这看起来很笨拙.稍微优雅的是有一个孤立的分支只包含README.branch-names.我正在寻找一种方法来记录分支的目的,而不仅仅是将它放在提交消息中,用于分支的"第一次"提交.我把"第一"放在引号中是因为它并不总是清楚它是什么意思,这就是将讨论放在提交消息中不方便的原因.通常很难找到记录此类消息的提交.

Bri*_*ips 40

这将是一种完全不同的方法,git note但您可以使用git config此功能.

$ git config branch.<branch-name>.note 'This is what this branch is for'
Run Code Online (Sandbox Code Playgroud)

这可以别名以使界面更简单(我猜这可以改进,但这是我使用的):

$ git config alias.branch-note '!git config branch.$(git symbolic-ref --short HEAD).note $( if [ $# -gt 0 ]; then $1; fi)'
Run Code Online (Sandbox Code Playgroud)

这允许您像这样设置分支注释(确保引用注释):

$ git branch-note 'This is what this branch is for'
Run Code Online (Sandbox Code Playgroud)

然后,您可以检索当前分支注释,如下所示:

$ git branch-note
This is what this branch is for
Run Code Online (Sandbox Code Playgroud)

作为一个额外的好处,在branch.<branch-name>命名空间下定义的配置条目将遵循分支重命名,并在以后删除分支时自动清除.只要分支存在,这些多余的配置条目才会持久存在,此时它们将被自动删除.

这种方法的缺点是每个分支只能存储一个"注释".带有参数的后续分支注释将覆盖前一个分支注释.您也没有将消息存储在可跟踪的git对象中的好处,但它可能足以满足您的需要.

  • 现在有一个别名 - "git branch --edit-description" - 它只是属性是"description",而不是"not" - git config branch.<branch-name> .description将显示该描述. (14认同)
  • 不,因为这严格来说是一个`git config`设置,它不会被推/拉到任何地方(就像所有其他配置选项一样). (8认同)
  • 这个说明会被推送到远程存储库吗? (7认同)

Don*_*tch 12

每当我创建一个新分支时,我都想做一个空提交,并提交一条提示消息,说明需要说什么.

git branch B A
git checkout B
git commit --allow-empty -m "Created branch 'B' from 'A'"
Run Code Online (Sandbox Code Playgroud)

这也有一个很好的副作用,使"git log --graph"中显示的历史更加清晰 - 即它在我创建分支时在树中显示了一个清晰标记的叉,而不是我通常得到的这是一个不明确的未标记的分叉,在我稍后的时候,当我碰巧在B中进行我的第一次提交时 - 那种事让我陷入了持续的迷雾.

  • 你以后如何检索该文本? (4认同)

ski*_*ppy 5

对此的正确答案现在是分支描述,这是在最初提出此问题后添加到 git 的功能。

以下是此答案中提出的两个 SO 问题: git 中的分支描述 在 Git 中 创建新分支时,我可以添加消息/注释/评论吗?

  • 正如每个答案线程中至少有一个人指出的那样:无论如何,这对我来说是无法推动的,因此毫无用处。 (3认同)