【问题标题】:Is there a way to accumulate a commit message with git while examing changes?有没有办法在检查更改时使用 git 累积提交消息?
【发布时间】:2011-02-17 11:23:27
【问题描述】:

我使用“git add -p”来暂存我的更改。我想做的是在我检查我的更改时积累一条提交消息,然后当我调用“git commit”时,它已经为我填写好了,并允许我在提交之前进行更改。

现在,通过简单地检查更改并相应地编辑提交消息文本框,使用 git gui 很容易,但我是一个命令行人员,想知道这是否可以在命令行中实现。

【问题讨论】:

  • 为什么不使用git commit --amend
  • 我认为 Jakub 的评论可能是比当前任何一个更好的答案,尽管使用 rebase 压缩可以完成同样的事情。
  • 我同意。我需要添加、提交,然后冲洗重复添加、提交 --amend 直到我完成。它适合现有的工作流程。
  • @Jefromi、@Jakub_Narebski [我知道这已经很久了,但对于 Google 员工来说]:不,不,为什么? commit --amend 将是一个过大的杀伤力,可能会造成人员伤亡和未知的副作用,这是由于 git 更改事务粒度与实际更改过程的粒度不同步的阻抗不​​匹配(想象一下过早的意外 push! ),除了不太为人所知的副作用,比如可能混淆/滥用提交钩子,谁知道呢。我宁愿向 git 发送功能请求,同时在提交时将临时注释收集到一个文本文件中。
  • @Sz。主要是因为它是内置的,它让 OP 做他们想做的事(不像在编写消息时偷看差异),它使更改和提交消息之间的关联明确(不像 mipadi 的答案)。如果您在所有本地提交上都有提交挂钩,即使是您认为是临时的,或者如果您拒绝进行您认为不是“最终”的提交,那么您已经度过了一段糟糕的时光。使用 rebase -i 压缩也是一个很好的解决方案,本质上是等效的,所以选择你喜欢的。但总的来说,在 git 中明确地这样做是一个好主意。

标签: git commit-message accumulate


【解决方案1】:

git add 不提供该功能,但您可以尝试其他一些选项:

  • 使用git commit -v 显示差异,以便记住您将要提交的内容
  • 在私有分支中进行小提交,然后将它们压缩到 git rebase -i
  • 使用另一个编辑器填充.git/COMMIT_EDITMSG。这将在您提交时用作模板。我相信这种方式很麻烦,而且并不比在任何地方写下文件中的片段并在提交时加载(对于vi 使用`:r 文件名)容易得多。

【讨论】:

    【解决方案2】:

    git commit 可以采用F(或--file)选项,指定应从文件中获取提交消息。因此,您可以添加更改,更新记录消息的文件,然后将该文件名传递给 git commit -F <file>

    这听起来不像完全你想要的,但它可能是一个不错的解决方法。

    【讨论】:

      猜你喜欢
      • 2021-06-24
      • 2011-06-15
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 2016-09-08
      • 2021-04-22
      • 1970-01-01
      • 2010-12-25
      相关资源
      最近更新 更多