当一个文件在编辑器中打开(例如Sublime或Atom),并且该文件在编辑器外被编辑时,编辑器通常会拒绝刷新其显示的文件。这种情况很少发生,因为大多数情况下人们只会在特定时间内使用单个工具来编辑文件。当文件是只读的时候显然不会出现这个问题。例如,当阅读系统错误日志时,文件将随着系统运行而更新,并可能有新的错误日志,但是日志文件不会被编辑,因此不会导致冲突。
然而,当文件被git pull
更新时,就会出现问题。
当一个人拉取repo的最新更新时,他可能在编辑器中打开了一个文件,在更新中对该文件进行了一些更改。如果编辑器无法刷新文件,则文件将保存旧内容,任何新更改都将丢失。
有时,使用Sourcetree反向hunk只是令人烦恼,但当有多个文件被更新时,那些覆盖操作可能会不经意地推送到Git服务器中——直到出现错误。目前,我们正在使用git log --follow -p --file
命令来查找和还原错误,但如果在及时发现覆盖操作之前就已经过期,这是不可能的,只能强制我们手动复制行。有没有办法在第一时间避免这种覆盖操作?