我在服务器上和本地PC上有一个网站。该网站的一部分存储在Bitbucket上作为存储库。该网站由以下文件和文件夹组成:
.htaccess
uploads/
resources/
index.php
.htaccess
包含通往www
目录的绝对路径。因此,我本地的PC具有不同的.htaccess
文件作为我的服务器。此外,我不想在本地PC和服务器之间同步uploads
文件夹。其余文件应同步。
我在这里弄清楚我可以通过添加一个包含
的.gitignore
文件来忽略它们 .htaccess
uploads/
此外,忽略的文件也不在我的存储库中。
由于upload
文件夹和.htaccess
不在我的存储库中,所以我现在害怕我在使用Git命令时不小心删除它们。
是正确的,唯一可能删除它们的git命令将为
git clean -dfx
或我不知道的其他git命令?
此外,当数据被git clean -dfx
删除时是否可以恢复数据?
是的,这就是为什么我总是先使用dry-run
(-n
)模式运行git,然后再删除-n
。
git clean -ndx
用git clean -dfx删除数据后可以恢复数据吗?
否与git本身:这取决于您的操作系统(例如Windows的Recuva)
但通常,不应影响私人文件(未进行跟踪,版本)购买git checkout
或git reset --hard
。
话虽如此,使用管理模式(在Windows中),您可以将符号链接与.htaccess
文件或upload
文件夹外部 :
mklink .htaccess C:pathoutside.htaccess
mklink /D .upload C:pathoutsideupload
这样,无论您的git回购发生了什么,您的私人数据仍然安全。
通过将文件放在.gitignore
中,您告诉Git该文件是可分配的。从本质上讲,您允许在需要该名称的任何时候删除它,例如,必须创建目录代替忽略的文件时。
git clean
是不是唯一允许GIT删除.gitignore
中提到的文件的情况。我认为git merge
还删除了忽略的文件。
即使今天没有,.gitignore
中的条目的当前定义是它们并不重要。git没有一个设施来指定既忽略 and preciald oferency of tocure。