【问题标题】:"git pull origin master" is opening emacs since I installed gited自从我安装了 gited 以来,“git pull origin master”正在打开 emacs
【发布时间】:2018-06-01 13:27:32
【问题描述】:

我前段时间安装了gited.el,因为当我运行git pull origin master 时,它运行拉取,完成,然后打开emacs。奇怪的是它并不总是这样做,而且不是在每个文件夹中都这样做。

此外,它仅在有新更改被拉取时才会发生(因为分支不是最新的)。

有人知道为什么会发生这种情况吗?关于gited 的任何可能触发此事件的信息?理想情况下,我希望它停止。

【问题讨论】:

  • 编辑器在真正的合并时被调用,这会创建一个需要您编辑提交消息的合并提交。如果是快进合并,编辑器不会出现。这可能是原因。您可以尝试git pull origin -r master 来避免合并提交,或者尝试git pull origin --no-edit master 来避免编辑提交消息。

标签: git emacs


【解决方案1】:

在 git 中预期在合并时启动编辑器的行为。它发生在拉 if 拉导致“真正的合并”(即来自上游的新提交未重新定位并且本地分支无法快进),因为它希望您编辑在该场景中创建的合并提交的提交消息。

我想可能已经改变的一件事是编辑器 git 启动的内容。在典型安装中,默认是vi 的一些变体,但可以配置。由于 gited 本质上是 git 的 emacs 集成,因此它可能已将您的 core.editor(或等效环境)值更改为 emacs 是合理的。

如果您可以确定此配置的设置位置,则可以将其改回。这也会影响您在手动提交时看到的编辑器等,因此您可能想要更改它,也可能不想要。

但问题是,所有这一切都假设在您现在获得 emacs 的情况下,您之前已经获得了 some 编辑器。我认为这可能是真的,但你所说的表明你认为不是。

您之前可能没有看到过这种情况的一个原因是,如果您之前的配置方式是拉取从未生成的合并提交。例如,如果您将 pull.rebase 设置为 true,则 pull 不会执行真正的合并,也不需要创建合并提交。也许在你安装 gited 的时候你的 pull.rebase 值发生了变化(虽然我不知道为什么 gited 会改变它)。

如果你想允许pull 执行真正的合并,但不想看到编辑器,你可以指示 git 使用默认的合并提交消息而不提供编辑器

git pull --no-edit

【讨论】:

  • 很好的答案,谢谢。我没有对任何东西做任何改变,所以它一定是gited 在幕后做的,正如你所说的。尽管如此,这还是解决了问题。
  • git config --list --show-origin | grep core.editor
猜你喜欢
  • 2011-02-22
  • 2020-07-27
  • 2012-01-31
  • 2013-05-04
  • 2017-10-20
  • 2016-04-08
  • 2014-03-12
  • 2021-10-14
相关资源
最近更新 更多