保护用符号链接替换所有文件

时间:2019-04-04 15:43:54

标签: ruby-on-rails symlink guard

我正在研究这个open source project,其中包含以下Guardfile:

# A sample Guardfile
# More info at https://github.com/guard/guard#readme

guard :livereload, port: '35738' do
  watch(%r{app/views/.+\.(erb|haml|slim)$})
  watch(%r{app/helpers/.+\.rb})
  watch(%r{public/.+\.(css|js|html)})
  watch(%r{config/locales/.+\.yml})
  # Rails Assets Pipeline
  watch(%r{(app|vendor)(/assets/\w+/(.+\.(css|js|coffee|html|png|jpg))).*}) { |m| "/assets/#{m[3]}" }
  watch(%r{(app|vendor)(/assets/\w+/(.+)\.(scss))}) { |m| "/assets/#{m[3]}.css" }
  watch(%r{(app|vendor)(/assets/\w+/(.+)\.(svg))}) { |m| "/assets/#{m[3]}.svg" }
end

但这是我第一次使用Guard,而我错误地运行了bundle exec guard init,这使Guardfile变成了:

# A sample Guardfile
# More info at https://github.com/guard/guard#readme

guard :livereload, port: '35738' do
  watch(%r{app/views/.+\.(erb|haml|slim)$})
  watch(%r{app/helpers/.+\.rb})
  watch(%r{public/.+\.(css|js|html)})
  watch(%r{config/locales/.+\.yml})
  # Rails Assets Pipeline
  watch(%r{(app|vendor)(/assets/\w+/(.+\.(css|js|coffee|html|png|jpg))).*}) { |m| "/assets/#{m[3]}" }
  watch(%r{(app|vendor)(/assets/\w+/(.+)\.(scss))}) { |m| "/assets/#{m[3]}.css" }
  watch(%r{(app|vendor)(/assets/\w+/(.+)\.(svg))}) { |m| "/assets/#{m[3]}.svg" }
end

guard :symlink, ignore: [] do
  watch(/.*/)
end

然后我运行bundle exec guard并输入了一些命令(可能是startall?我记不清了),这些命令出乎意料地开始更改我的所有文件,并且在恐慌中,我ctrl-c杀死了这个过程。这在代码库中留下了一堆符号链接和.link_backup文件。

在这一点上,我放弃了Guard,只希望恢复旧文件,所以我做了git reset --hard HEAD。这只修复了git控制下的文件。我有不受版本控制的本地配置文件,例如FILENAME,它们已重命名为FILENAME.link_backup,并且有一个指向自己的新符号链接FILENAME

如何恢复这些文件?是否有一个Guard命令可以自动执行此恢复?

0 个答案:

没有答案