【问题标题】:Protection against git removal of untracked .gitignored files in rails防止 git 删除 rails 中未跟踪的 .gitignore 文件
【发布时间】:2015-12-04 11:30:35
【问题描述】:

我设法在我的 rails 应用程序中使用 git clean 删除了以下文件:

Removing .DS_Store
Removing .bundle/
Removing config/application.yml
Removing db/development.sqlite3
Removing log/development.log
Removing public/system/profiles/avatars/000/000/011/
Removing public/system/profiles/avatars/000/000/012/
Removing tmp/

是否有机会以某种方式取回这些文件或能够从其他地方复制? (Git 会永久删除文件,所以垃圾箱是空的。我也尝试过使用磁盘钻,但 id 也没有成功。)

如何正确保护我的 gitignored 文件以避免将来出现这些情况?我应该有时复制它们还是有其他程序来处理这个? 我必须重新创建我的 rails 应用程序还是有人知道更好的选择?

【问题讨论】:

  • 除非你从 github 上擦除它们,否则它们应该在你的提交历史中。您可以在适当的位置重新创建文件并从您的 github repo 复制/粘贴代码
  • 使用 git clean -x -d -f 我删除了未跟踪的文件。这些文件未被跟踪,因为包含在 .gitignore 文件中,据我所知,我从未将它们推送到 github。
  • 您可能不想说-x,因为它会明确删除被忽略的文件……这正是您不想要的。但那是为了未来。很遗憾,没有什么可以解决过去的。

标签: ruby-on-rails git sqlite development-environment


【解决方案1】:

我认为您可以尝试在以前的提交中找到这些文件。

下次使用命令git rm --cached file_name删除

【讨论】:

  • 使用 git clean -x -d -f 我删除了未跟踪的文件。这些文件未被跟踪,因为包含在 .gitignore 文件中,据我所知,我从未将它们推送到 github。
  • 所以,我认为恢复它们会很困难。
【解决方案2】:

我能够成功。我运行了 bundle install(在 .bundle 中创建文件)并重新安装了 sqlite 和 figaro。之后我运行 rake db:migrate 创建了 development.sqlite3 文件。我丢失了开发数据,但这根本不是一个大问题。对于 figaro,我必须将密钥和密码(Sendgrid、Stripe 等)重新输入到新的 application.yml 文件中。临时和日志文件似乎并不重要。感谢您的回答。这个 $git clean 很危险,小心!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-24
    • 2018-07-21
    • 2019-10-30
    • 2014-02-12
    • 2016-02-27
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多