2

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

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

这种担忧通常让我想知道是否应该在重新提交涉及某些负载更改的提交之前关闭编辑器,我通常会根据我目前的感觉来选择。当然,我也很担心,因为我过去曾担心由于这种情况可能会丢失一些更改(尽管在这种情况下,我也可能在 Git 方面搞砸了一些事情)。

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

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

4

3 回答 3

2

在执行 git rebase 时打开 IDE 没有问题。你不需要关闭它。另一方面,您对在 IDE 中执行 git 操作同时执行 git rebase 的担忧是有效的。我建议你以后这样做。大多数事情不会引起问题——但你为什么要强迫它呢?

于 2021-03-27T22:14:24.513 回答
2

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

如果您的 IDE 在您解决变基冲突时修改了您的文件,那么在您git add ... + git rebase --continue=> 之后您实际上可能有一个错误的版本,这听起来不太可能,但如果您不信任您的程序,这可能是它们可能影响的时刻。

于 2021-03-27T22:35:03.640 回答
2

主 IDE 打开时变基是否安全?

是¹

因为 IDE 处于打开状态,除非它以非交互方式保存文件或其他方式,否则不会影响/更改磁盘上的文件。

哪些 IDE 操作很好?

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

  • 提示时单击是file changed externally, refresh it?
  • 加载/浏览文件
  • git log
  • git show
  • git fetch
  • 等等

哪些 IDE 操作有问题?

任何无意(就 in-progress 而言git rebase)更新文件或 git 写入操作的内容,例如:

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

例如,如果您想使用 IDE 来解决冲突——这很好,如果目的是在变基期间更新文件——使用 IDE 这样做没有问题:)。


¹ - 正如 Torek 所评论的那样,存在或曾经存在可能有问题的 IDE/编辑器,但这将是非常罕见的,而不是今天的规则。

于 2021-03-28T14:40:21.763 回答