【问题标题】:How can I tell Emacs my git branch has changed?如何告诉 Emacs 我的 git 分支已更改?
【发布时间】:2013-06-07 16:45:39
【问题描述】:

在我的 Emacs 23 编辑器的底部,我注意到 Emacs 知道我在一个受版本控制的目录中工作,该版本控制系统是什么,以及我当前所在的分支。很酷!但是假设我在 master 分支上,从命令行我执行 git commit,然后是 git checkout <branch>。 Emacs 仍然显示我在 master 分支上。如何刷新 Emacs 以反映我当前所在的分支,而无需关闭所有缓冲区并重新启动它?

【问题讨论】:

  • 如果你只是重新加载文件会发生什么?
  • 是否有 Emacs 命令重新加载文件?
  • revert-buffer 喜欢佐丹奴建议

标签: git emacs version-control dvcs


【解决方案1】:

M-x revert-buffer 但我建议您使用 magit-mode 在 Emacs 中管理您的 git 存储库。

为了记录,我使用将revert-buffer绑定到F5

(global-set-key [f5] 'revert-buffer)

【讨论】:

  • 非常感谢!键绑定目前是完美的,但后来看起来magit-mode 是一个更永久的解决方案。
  • @Houdini 避免每次按 F5 时烦人的确认。使用(global-set-key [f5] (lambda () (interactive) (revert-buffer nil t)))
【解决方案2】:

添加到 giordano 的答案中,如果 git 下的许多文件被打开。然后打开 ibuffer (Mxibuffer) 使用 m 标记要重新加载的缓冲区,然后使用 E (revert-buffer nil t).

【讨论】:

  • 不需要评估 -- V 运行 ibuffer-do-revert。当然,在 ibuffer 中标记缓冲区的方法有很多,如果您不熟悉它,请使用C-h m 查看它的功能。
  • 此外,如果您正在混合 ibuffer 和版本控制,您可能还想查看ibuffer-vc
  • 非常感谢菲尔斯。我终于开始尝试将我的版本控制系统和编辑器相互结合使用,而不是跳回命令行执行git 命令。
【解决方案3】:

您可以通过启用 global-auto-revert-mode 自动恢复缓冲区。 如果您想启用它,请将以下代码添加到您的配置文件中。

(global-auto-revert-mode 1)
(setq auto-revert-check-vc-info t)

【讨论】:

  • 如果你打开了太多的缓冲区,并且你的机器很热,那么你应该将`auto-revert-interval'设置得更大。
猜你喜欢
  • 2019-12-22
  • 2015-04-29
  • 2014-06-08
  • 2021-03-24
  • 2021-11-10
  • 1970-01-01
  • 2021-04-23
  • 2015-04-29
  • 2021-12-09
相关资源
最近更新 更多