Git - 当 main IDE 打开时变基是否安全?

Git - Is it safe to rebase while main IDE is open?

我是一个经常变基与功能相关的提交以修复它们的人。最近我一直担心打开主编码 IDE 是否会影响 rebase 过程中出现问题。

例如,当由于用户要执行某些操作(例如重命名某个提交)而在 rebase 过程中出现“暂停”时,是否会单击通常的“外部更改的文件,刷新它?”提示某些 IDE 提供 - 在完成变基之前 - 影响变基时的最终工作目录状态,而不是保持编辑器关闭?

这种担忧通常让我想知道在涉及某些更改负载的变基提交之前是否应该关闭编辑器,我通常会根据自己的感觉。当然,我也很担心,因为我过去担心某些更改可能会由于这种情况而丢失(尽管在那种情况下,我也可能搞砸了 Git 明智的事情)。

编辑:我现在意识到,当出现类似于“文件在外部更改,刷新它?”的对话框提示时。由变基(对于这种情况)引起的它不应该引起任何问题,因为文件已经随着变基而改变。因此,我现在想知道的是:

Q2) 如果提示“文件已从外部更改,请刷新”怎么办?您单击 ,以便该文件将其内容恢复为原来的内容,然后您保存该文件并继续变基进程? (例如,在重命名提交的情况下关闭活动的交互式摘要选项卡,或者在解决某些冲突后执行 git rebase --continue,不一定在外部更改的文件中)。与没有手动重新保存旧的覆盖内容相比,它会导致文件在完成变基后以不同的内容结尾吗?

在执行 git 变基时打开 IDE 没有问题。你不需要关闭它。另一方面,您担心在 IDE 中执行 git 操作,同时执行 git 变基是有效的。我建议你之后再做。大多数事情不会造成问题 - 但你为什么要强迫它?

Git 仅使用您在使用 git add 时暂存的更改 您(或您 IDE 或任何程序)对您的文件所做的不会影响暂存的更改(你可以提交)。

如果 你的 IDE 在你解决 rebase 的冲突时修改了你的文件,那么在你 git add ... + git rebase --continue => 这听起来不太可能,但如果您不信任您的程序,这可能就是它们可能影响的时刻。

当 main IDE 打开时变基是否安全?

是¹

因为 IDE 正在打开,除非它以交互方式 none 保存文件或其他方式,否则不会 affect/change 磁盘上的文件。

哪些IDE操作没问题?

不影响工作副本的任何内容,示例:

  • 当系统提示 file changed externally, refresh it?
  • 时单击是
  • Loading/browsing 个文件
  • git log
  • git show
  • git fetch
  • 等等

哪些IDE操作有问题?

任何无意(就正在进行的git rebase)更新文件,或git写入操作,示例:

  • 忽略打开的文件包含变基之前的内容并保存它
  • 当系统提示 save this file before quitting?
  • 时单击是
  • git checkout <branch>
  • git checkout -- file
  • git commit
  • git merge
  • git pull
  • 等等

例如,如果您想使用您的 IDE 来解决冲突 - 这完全没问题,如果意图是在变基期间更新文件 - 使用您的 [=78= 没有问题] 这样做 :).


¹ - 正如 Torek 评论的那样,有或曾经有 IDEs/editors 这可能是有问题的,但这将是非常罕见的,而不是今天的规则。