我的非存储库文件是否可以通过Git保护?

时间:2016-12-24 01:58:49

标签: git bitbucket

我在服务器和本地PC上有一个网站。该网站的一部分存储在BitBucket上作为存储库。该网站包含以下文件和文件夹:

.htaccess
uploads/
resources/
index.php

.htaccess包含www目录的绝对路径。因此,我的本地PC有一个不同的.htaccess文件作为我的服务器。此外,我不想在本地PC和服务器之间同步uploads文件夹。其余文件应该同步。

我发现here我可以通过添加包含

.gitignore文件来忽略它们
.htaccess
uploads/

此外,被忽略的文件也不在我的存储库中。

由于upload文件夹和.htaccess不在我的存储库中,我现在害怕在使用Git命令时意外删除它们。

唯一可能删除它们的git命令是

是否正确
git clean -dfx

还是有其他我不知道的Git命令?

此外,是否可以在使用git clean -dfx

删除数据时恢复数据

2 个答案:

答案 0 :(得分:1)

是的,这就是我在删除dry-run之前首先使用-n-n)模式运行git clean的原因。

git clean -ndx
  

是否可以在使用git clean -dfx?

删除数据时恢复数据

不使用git本身:它取决于您的操作系统(如Recuva for Windows

但通常情况下,私人文件(未跟踪,版本化)不应受到影响购买git checkoutgit reset --hard
话虽这么说,使用管理员模式(在Windows中),您可以建立符号链接到位于外面的<{1}}文件或.htaccess文件夹您的Git仓库:

upload

这样,无论你的Git仓库发生了什么,你的私人数据都是安全的。

答案 1 :(得分:0)

通过将文件放在.gitignore中,您告诉Git该文件是可有可无的。从本质上讲,您可以在需要名称时随时删除它,例如,必须创建目录来代替被忽略的文件。

git clean 唯一允许Git删除.gitignore中提到的文件的场合。我认为git merge也会删除被忽略的文件。

即使今天没有,.gitignore中条目的当前定义是它们并不重要。 Git没有指定可忽略珍贵的文件的工具。