寻找一个在关闭文件后自动执行git commit的文本编辑器

时间:2018-07-05 09:43:24

标签: git version-control

我也发布了这个问题here on Reddit

我不是版本控制或Git专家,因此手动执行所有步骤非常麻烦。我想要一个文本编辑器,如果应用了任何更改,则uplon关闭文件,将应用以下命令:

  • 检查文件是否已编辑
  • git add <filename>
  • 打开一个弹出窗口或标签来编辑提交消息
  • git commit -m "the commit message entered in the popup"

如果您能帮助我知道是否有这样的编辑器可以内置此功能或通过插件/插件来实现,我将不胜感激。或者,如果有可能编写这样的插件。

P.S.1。并不一定要是git,Mercurial或其他版本的控制系统也可以。

P.S.2。,如果我知道这些语言,我认为这在Vim脚本和/或emacs lisp中应该可行。

P.S.3。 herehere讨论了不同的想法。显然有可能在关闭时进行git commit,但是我想手动编写消息。

1 个答案:

答案 0 :(得分:5)

它绝对应该在任何合理的可编程编辑器中都是可行的。

例如,在这里,肯定是非常有漏洞的,并且在Emacs + magit的钩子上的第一刺不完整:

(defun my/auto-commit-on-kill ()
  (when buffer-file-name
    (let* ((current (magit-file-relative-name))
           (choices (nconc (magit-modified-files) (magit-untracked-files)))
           (to-stage (car (member current choices))))
      (when to-stage
        (magit-stage-file to-stage)
        (magit-commit)))))

(add-hook 'kill-buffer-hook 'my/auto-commit-on-kill)

但是实际上,如果您要使用Emacs / magit路线,我强烈建议您 只需“手动”使用magit。其实并没有那么复杂,但是它可以教给您更多关于git的方法,而不是依赖于更加简化的界面。