【发布时间】:2017-03-10 21:48:40
【问题描述】:
当一个文件在编辑器(比如 Sublime 或 Atom)中打开,并且该文件在编辑器之外被编辑时,编辑器总是拒绝刷新它显示的文件。这种情况很少发生,因为很可能在特定时间范围内只使用一个工具来编辑文件。当文件为只读时,这显然不是问题。例如,读取系统错误日志时,文件会随着系统运行而更新,可能会有新的错误日志,但不会编辑日志文件,因此不会造成冲突。
但是,当文件被git pull更新时,它会导致问题。
当一个人将最新的更新拉到 repo 时,他可能会在编辑器中打开一个文件,在更新中对其进行了一些更改。如果编辑器无法刷新文件,文件将与旧内容一起保存,并且所有新更改都将丢失。
有时,使用 sourcetree 反转大块很烦人,但是当有许多文件更新时,可能会在不注意的情况下将覆盖推送到 git 服务器 - 直到发生错误。目前我们正在使用git log --follow -p -- file命令定位并恢复错误,但是如果不及时发现覆盖是不可能的,不得不手动复制这些行。有没有办法首先防止这种覆盖?
【问题讨论】:
-
我将使用的解决方案是远离这种行为方式的编辑器。大多数现代 IDE(Eclipse、IntelliJ、NetBeans 等)都没有这个问题。
-
PHP 有什么选择吗? (最好是免费的,所以 PHPStorm 不是一个选项)
-
我想我已经看到这种情况发生了几次,即使使用 IntelliJ 也是如此,但这从来都不是一个大到足以担心的问题。我不知道你可以为 PHP 使用什么编辑器来避免这种情况。 Notepad++ 似乎在这方面表现得非常好,即它不会吃掉你的更新。
-
有些成员使用的是 Mac,所以 notepad++ 不适合他们。
-
一种解决方法是在拉取之前关闭编辑器中的所有文件。如果编辑器与 Git 集成,这也是另一种选择。
标签: git editor sublimetext2 sublimetext3 atom-editor