由于编辑器没有自动更新,有没有办法防止git pull后意外覆盖?

cyt*_*nny 9 git editor sublimetext2 sublimetext3 atom-editor

当在编辑器中打开文件(比如Sublime或Atom),并且在编辑器外编辑文件时,编辑器总是拒绝刷新它显示的文件.这种情况很少发生,因为很可能只会使用单个工具在特定时间范围内编辑文件.当文件是只读时,这显然不是问题.例如,在读取系统错误日志时,文件将在系统运行时更新,并且可能有新的错误日志,但不会编辑日志文件,因此不会导致冲突.

但是,它会在更新文件时导致问题git pull.

当一个人提取回购的最新更新时,他可能会在编辑器中打开一个文件,在更新中进行了一些更改.如果编辑器无法刷新文件,则文件将与旧内容一起保存,并且任何新更改都将丢失.

有时候,使用sourcetree反转hunk是很烦人的,但是当有许多文件被更新时,这种覆盖可能会被推到git服务器中而不被注意 - 直到发生错误.目前我们使用git log --follow -p -- file命令来定位并恢复错误,但是如果没有及时发现覆盖,则无法手动复制行.有没有办法首先防止这种覆盖?

Von*_*onC 4

当一个文件夹被编辑器(我们团队主要是Sublime或者Atom)打开,并且在编辑器之外编辑代码时,编辑器中的内容有时刷新,有时不刷新。

这正是Atom 问题 3594中讨论的内容

像文件观察器这样的 Atom 包将有助于缓解这个问题,如果检测到编辑器之外的修改,则会提示重新加载每个文件。

您在此线程中报告了与 SublimeText相同的问题。正如该线程中提到的,当通过网络共享访问文件时,该问题在 Windows 上更为相关。
文件重新加载器可以提供帮助,但无法检测外部更改。

SublimeText线程提到了该设置 (2016)

{ "always_prompt_for_file_reload": true }
Run Code Online (Sandbox Code Playgroud)

但是,当编辑器和保存的文件中都发生更改时,这可能没有帮助:像 Visual Studio Code 这样的编辑器 通过以下方式解决了这个问题:

当您尝试使用 VSCode 保存文件时,如果双方(从磁盘和通过编辑器)都有更改,编辑器会警告您这种情况,并且文件比较将允许您决定要做什么。

这就是为什么,使用 SublimeText(除了设置之外"always_prompt_for_file_reload"),您可能需要FileDiff 插件
它确实允许使用 Saved 比较文件:

https://forum.sublimetext.com/uploads/default/original/3X/5/a/5a59f922e26fea423cc31ae5c1d744eca8205143.png