寻找一个文本编辑器,在关闭文件时自动执行git提交

Foa*_*oad -2 git version-control

我也在Reddit上发布了这个问题

我不是版本控制或Git专家,我手动执行所有步骤非常麻烦.我想有一个文本编辑器uplon关闭文件,如果有任何更改,应用这些命令:

  • 检查文件是否已被编辑
  • git add <filename>
  • 打开弹出窗口或选项卡以编辑提交消息
  • git commit -m "the commit message entered in the popup"

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

PS1.它实际上不一定是git,mercurial或其他版本的控制系统也没关系.

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

PS3. 这里这里讨论了不同的想法.显然有可能在关闭时进行git提交,但我想手动编写消息.

Mic*_*ski 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)
Run Code Online (Sandbox Code Playgroud)

但实际上,如果你要去Emacs/magit路线,我强烈建议你"手动"使用magit.它真的不是那么复杂,但它会教你更多关于git而不是依赖于更简化的界面.