【问题标题】:git commit comment per file每个文件的 git 提交评论
【发布时间】:2013-06-09 01:20:29
【问题描述】:

我是 git 新手,之前使用过 Perforce、SVN、源代码安全和许多其他源代码控制工具。

我正在寻找以前在 Perforce 中使用的功能,我可以在其中构建更改列表;我能够将文件添加到更改列表并为每个文件提供特定的注释。

git 有一个暂存区,可以在其中添加更改的文件,有没有办法在将文件添加到暂存区时提供每个文件的注释?

或者也许在评论阶段我可以添加每个文件的评论;我有一个很好的外观并且无法锻炼,如果其中任何一个如何执行 - 事实上从我所看到的都是不可能的。

有人知道我该怎么做吗?

【问题讨论】:

  • 你用过SVN,它也做不到。

标签: git comments commit


【解决方案1】:

Git 不提供此类功能。 Git 的哲学是跟踪“内容”,而不是“文件”。将文件添加到暂存区域可以让您准确地准备提交。如果将多个文件添加到暂存区域,那是因为它们链接到相同的功能。这就是提交消息代表整个更改的原因。

如果您需要每个文件有一条消息,您可以考虑在一个功能分支上创建多个提交,每个提交只有一个文件。

希望这会有所帮助。

【讨论】:

  • 感谢您指出这一点 - 我需要改变我一直在思考的方式,从而使用 git。很有帮助。
  • 按照这个逻辑,在每次提交中应该只有一个文件中的“一个”本地化更改,这种更改很少发生,通常用于非常小的调整。否则,提交消息不能正确代表整个更改,因为更改分布在“各处”,但您的提交消息不是。所以这个逻辑是有缺陷的,是的,git 在内容中“思考”,但是当你组织内容时,你仍然在文件中思考。
  • 为了完成这个想法,Git 允许 cmets 每次更改或更改块仍然非常有用(“块”可能允许在逻辑上将更改的子集与评论相关联) ,如果不是每个文件。这将使 committerreviewer 更愉快地描述/理解变更集。
  • 我不是哲学家,但我认为这对于想要查看文件更改的人来说是一个有用的功能。并非总是如此,但在许多情况下,它可以帮助他们更好地理解变化。
  • @ZuzuCorneliu 我对 git 哲学的理解是,您不应该提交足够大的更改来保证需要每个文件消息的方法。如果您跨多个文件进行更改以实现某个功能,则只需暂存该功能的更改,然后提交该功能并使用单个注释来解释更改。
【解决方案2】:

如今,您可以将提交消息添加到单个文件。例如,我只是这样做了:

git commit -m 'reference containers in app' src/App.js

上下文:多个文件通过$git add .添加到git 那么:在这个单独的文件 (src/App.js) 上提交消息。

[发布答案,因为这仍然出现在谷歌中]

【讨论】:

  • 但是你只会提交那个文件。
【解决方案3】:

您可以在进行一些更改后转到该文件夹​​:

git add .
git commit -m 'mssg' 

然后回去推它:

git push origin master

【讨论】:

  • 是否可以编辑答案以将git ... 行标记为代码? (只需将每个代码行缩进 4 个空格或使用界面中的按钮)。我无法提交修改,因为添加的字符数不足,无法提交修改。
【解决方案4】:

在 git 中的每个文件中,当您将鼠标悬停时,您会看到“+”,点击为每个文件添加您的 cmets。

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 2014-03-20
    • 1970-01-01
    相关资源
    最近更新 更多