在VIM中编辑代码时,我想在Git Commit消息中添加小的单行注释。有时我发现在我看到它时修正一个小问题比在评论或记录它以便将来修复时更容易。但是,我仍然希望更改显示在注释日志中。
现在我正在运行:!echo Did something neat >> g
,我在git评论中使用了g
文件的内容。在我写一个VIM宏来写入文件之前,Git / VIM有更好的方法来处理它吗?
答案 0 :(得分:9)
您可以选择使用git add --patch
(或git add -p
)选择性地使用-p
(或--patch
)创建提交,而不是在提交消息中为工作时遇到的小修补添加其他注释,然后继续处理其余的代码。
通过执行此操作,您不仅可以为每个修复提供自己的提交,还可以帮助保持历史记录中的提交代表逻辑工作单元,即逻辑上属于一起的更改,而不是通过一堆无关的大提交它的变化。
来自the Git docs:
{{1}}
{{1}}
在索引和工作树之间以交互方式选择补丁,并将它们添加到索引中。这给了用户一个机会 在将修改后的内容添加到索引之前检查差异。这有效地运行add --interactive,但绕过了初始 命令菜单并直接跳转到patch子命令。看到 “互动模式”了解详情。
Pro Git也描述了这个所谓的interactive staging。
答案 1 :(得分:1)
您可以使用Vim寄存器。
:let @n = "Did something neat\n"
...
" Uppercase register name appends:
:let @N = "Did another clever thing\n"
然后,您可以通过:put n
或"np
等插入内容。通常,寄存器内容将保存在Vim调用中(在 viminfo 文件中),因此它和你的临时文件一样好。
答案 2 :(得分:1)
您可以考虑使用其他替代方法向提交添加元数据,例如“git notes”或参阅:http://www.tikalk.com/DevOps/commit-metadata-tag-implementation/