我正在研究这个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
并输入了一些命令(可能是start
或all
?我记不清了),这些命令出乎意料地开始更改我的所有文件,并且在恐慌中,我ctrl-c
杀死了这个过程。这在代码库中留下了一堆符号链接和.link_backup
文件。
在这一点上,我放弃了Guard
,只希望恢复旧文件,所以我做了git reset --hard HEAD
。这只修复了git控制下的文件。我有不受版本控制的本地配置文件,例如FILENAME
,它们已重命名为FILENAME.link_backup
,并且有一个指向自己的新符号链接FILENAME
。
如何恢复这些文件?是否有一个Guard命令可以自动执行此恢复?