【问题标题】:How do annotate a git repository?如何注释 git 存储库?
【发布时间】:2014-02-24 23:23:17
【问题描述】:

我有一个 git 存储库,在每个提交中,已经完成了几件事,因此,我的单行提交消息不足以完全解释正在发生的事情。

我希望以后能够回到这些事情上,以供我自己参考,并且能够以某种形式发布它们。我知道,如果我要将本地存储库推送到 git 托管服务提供商,例如 githubbitbucket,我可以通过他们的 Web 界面查看每个提交和 diff-patch 并向它们添加 cmets,然后添加到个别行也是。我将这些称为差异注释。

这样做的缺点是 git 托管提供商保存了所有 diff 注释数据,而我的本地 git 存储库将不包含它们。

  • 有没有办法从 git 托管服务提供商“导出”或“下载”这些差异注释?
  • 是否有 git 工具或插件允许我在本地存储库中创建差异注释(无需推送到 git 托管服务提供商)?

【问题讨论】:

    标签: git github annotations bitbucket git-diff


    【解决方案1】:

    我认为 Git 可以满足您的需求,但不确定您的场景有多复杂,但我的建议如下:

    小提交

    您说“在每次提交中,已经完成了几件事,因此,我的单行提交消息不足以完全解释正在发生的事情。”。好吧,有些人可能会不这么说,但我会尽可能保持提交尽可能小而简单,以便可以在一行中解释

    即使是大型功能,您通常也可以将它们拆分为较小的更改。我会在我只是修复填充的地方提交,或者公开一个 API 而不必对其进行编码。小提交有助于在将来检测错误,例如,如果您使用的是 git bisect

    冗长的描述

    我不确定我说的是不是完全无关紧要的事情,如果我是的话,我很抱歉,但你不需要每次都做一个单行提交消息。你总是做commit -am <message>吗?你知道如果你在没有-m 的情况下输入commit,你的默认编辑器会打开吗?然后你可以输入第一行摘要,然后输入圣经,如果你愿意的话。

    回来审核

    是的,如果您想浏览源代码,GitHub 会很棒,但是如果您想及时返回并检查给定提交的 cmets/注释,您只需要通过 git log 搜索提交即可然后,选择提交 id,您可以执行 git show <commitId>

    这将显示所有更改以及所有 cmets。

    【讨论】:

    • 感谢@bitoiu 的回答,但是我正在寻找一种方法来将 cmets 添加到差异补丁中的各个行。我倾向于回避逐行提交,因为我的风格是在每次提交之前逐步让另一件事工作,有时这意味着要修改多个文件和行。
    • @bguiz,提交应该尽可能简单/小。如果片段需要单独解释,则提交太复杂。你的提交信息很可能比补丁本身大得多。在 git 中,提交是轻量级和快速的。充分利用这一点。
    • @vonbrand 你肯定不是说我应该一次提交一行?我在这里要求的是能够一次提交多行,但能够在行级别注释每个提交。一次提交一行可以实现这种粒度级别,但是我不希望这样做。
    • @bguiz,如果更改只影响一行,那就这样吧。许多不会是单行的,有些会触及几乎所有文件。如果您想使用像 git bisect 这样的工具,那么进行原子更改至关重要。
    • 来自我的原始回答:“小提交可以很好地检测未来的错误,例如,如果您使用的是 git bisect。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多