Git 我的非存储库文件安全吗?
Are my non-repository files secure with Git?
我在服务器和本地 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
删除的数据还能恢复吗?
是的,这就是为什么我总是先 运行 git 使用 dry-run
(-n
) 模式清理,然后再删除 -n
。
git clean -ndx
is it possible to recover the data when it has been deleted with git clean -dfx?
否 git 本身:这取决于您的 OS(如 Recuva for Windows)
但一般来说,私人文件(未跟踪、版本化)应该不会受到影响购买 git checkout
或 git reset --hard
。
话虽这么说,使用管理员模式(在 Windows 中),您可以将符号 link 设置为 .htaccess
文件或位于 外部 [=31] 的 upload
文件夹=] 你的 Git 回购:
mklink .htaccess C:\path\outside\.htaccess
mklink /D .upload C:\path\outside\upload
这样一来,无论您的 Git 存储库发生什么情况,您的私人数据都会保持安全。
通过将文件放入 .gitignore
,您告诉 Git 该文件是可有可无的。本质上,您因此允许在需要名称时随时删除它,例如,当必须创建目录来代替被忽略的文件时。
git clean
是 而不是 唯一允许 Git 删除 .gitignore
中提到的文件的场合。我认为 git merge
也会删除忽略的文件。
即使今天不是,.gitignore
中条目的当前定义是它们不重要。 Git 无法指定既可忽略 又 珍贵的文件。
我在服务器和本地 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
删除的数据还能恢复吗?
是的,这就是为什么我总是先 运行 git 使用 dry-run
(-n
) 模式清理,然后再删除 -n
。
git clean -ndx
is it possible to recover the data when it has been deleted with git clean -dfx?
否 git 本身:这取决于您的 OS(如 Recuva for Windows)
但一般来说,私人文件(未跟踪、版本化)应该不会受到影响购买 git checkout
或 git reset --hard
。
话虽这么说,使用管理员模式(在 Windows 中),您可以将符号 link 设置为 .htaccess
文件或位于 外部 [=31] 的 upload
文件夹=] 你的 Git 回购:
mklink .htaccess C:\path\outside\.htaccess
mklink /D .upload C:\path\outside\upload
这样一来,无论您的 Git 存储库发生什么情况,您的私人数据都会保持安全。
通过将文件放入 .gitignore
,您告诉 Git 该文件是可有可无的。本质上,您因此允许在需要名称时随时删除它,例如,当必须创建目录来代替被忽略的文件时。
git clean
是 而不是 唯一允许 Git 删除 .gitignore
中提到的文件的场合。我认为 git merge
也会删除忽略的文件。
即使今天不是,.gitignore
中条目的当前定义是它们不重要。 Git 无法指定既可忽略 又 珍贵的文件。