每个文件的git提交评论

17

我之前使用过Perforce、SVN、源代码安全等很多源代码控制工具,现在是新手使用git。

我想要的功能是构建一个变更列表;我能够将文件添加到变更列表中,并为每个文件提供一个特定的注释。这是我以前在Perforce中用到的功能。

git有一个暂存区,改变的文件会被添加到其中,但是是否有一种方法可以在将文件添加到暂存区时提供每个文件的注释呢?

或者在注释阶段,我可以添加每个文件的注释;我已经认真查找了,但是没有找到如何执行以上操作的方法 - 事实上从我所看到的情况来看,这两种方法都不可能。

是否有人有任何想法可以帮助我完成这个需求呢?


你已经使用了SVN,它也无法做到这一点。 - Penghe Geng
5个回答

20

Git没有提供这样的功能。Git的哲学是跟踪'内容'而不是'文件'。将文件添加到暂存区使您能够精确地准备提交。如果多个文件被添加到暂存区,那是因为它们与同一个功能相关联。这就是为什么提交消息代表整个更改的原因。

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

希望这可以帮助到您。


1
谢谢指出这一点 - 我需要改变我一直以来的思维方式,因此使用git。非常有帮助。 - eklektek
1
根据这个逻辑,每个提交中应该只有一个本地化更改在单个文件中发生,这非常罕见且通常是为了进行非常小的调整。否则,该提交消息无法“正确”地表示整个更改,因为更改是“分散在各处”的,但您的提交消息并非如此。因此,这个逻辑是有缺陷的,因为是的,Git“思考”的是内容,但当您组织该内容时,您仍然是按文件思考的。 - Zuzu Corneliu
1
为了完善这个想法,如果Git允许每个变更或一组变更(“块”指的是可能将一组变更逻辑相关联到一个注释中)进行评论,甚至是每个文件进行评论,那将非常有用。这将使得描述/理解变更集对于提交者和评审者都更加愉快。 - Zuzu Corneliu
3
我不是哲学家,但我认为这是一个有用的功能,可以帮助那些想要查看文件更改的人。并不总是这样,但在许多情况下,它可以帮助他们更好地理解更改。 - MehranTM
@ZuzuCorneliu 我对 Git 的理解是,你不应该提交足够大的更改来需要每个文件留下单独的注释。如果您对多个文件进行更改以实现某个功能,则应该仅暂存该功能的更改,然后使用单个注释提交该功能的更改。 - Andrew
澄清一下:这可能是个人偏好,但我认为如果提交太复杂,无法用一个注释来解释,那么你一次提交的内容就太多了,需要将其分成更小的块。例如,如果一个新功能包括库更改、新文件和现有文件更改,则在我的书中,每个更改都应该是单独的提交。 - Andrew

16

现在您可以向单个文件添加提交信息。我刚刚为此做了一个实例:

git commit -m 'reference containers in app' src/App.js
上下文: 通过 $git add. 将多个文件添加到 git 中。 然后: 在这个单独的文件 (src/App.js) 上提交消息。

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


5
但是你只会提交那个文件。 - Homero Esmeraldo
@HomeroEsmeraldo,这意味着您可以使用该命令创建一个程序来将每个文件推送到git中。无需手动操作,一旦程序完成,将来更容易管理软件包。 - Micah

0

你可以在进行一些更改后直接转到文件夹:

git add .
git commit -m 'mssg' 

然后返回并推送它:

git push origin master

有没有可能编辑答案并将git... 行标记为代码?(只需每行缩进4个空格或使用界面上的按钮)。我无法提交编辑,因为添加的字符不足以提交编辑。 - GPhilo

0
在GitGui中,您可以在未暂存的更改中选择一个文件,然后转到“提交>暂存以提交”。这将仅对所选文件进行暂存。

-3
在git中的每个文件中,当你悬停时会看到“+”,点击它为每个文件添加评论。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接