Git:如何保护目录

时间:2013-09-28 22:36:10

标签: php git gitignore

我正在开发一个php网络应用程序,我需要一个名为“library”的目录,始终不受git的影响。

原因是此目录用于存储用户可能在我的php应用程序中上传到服务器的其他文件和文件夹。因此,它包含我本地计算机上的项目以及我正在使用的登台服务器上的不同项目,这些项目不应该被删除。

我知道我可以。gitignore“库”目录,但我正在阅读有关git可能会删除gitignored项目的警告。

是否有明确保护目录或文件的方法?

2 个答案:

答案 0 :(得分:2)

Git只会删除一个或多个目录文件 - 如果它们在某些时候实际上是存储库的一部分。如果你的分支都没有包含这些文件,Git根本不会触及它们。即使它确实如此;没有数据丢失。

要理解这一点,我们需要了解Git中结账时会发生什么。假设我们在分支A上并且想要检查分支B.Git所做的是删除分支A中包含的所有文件并且 clean (即它们没有任何未提交的更改)。接下来,Git将从分支B创建所有文件。现在,如果分支A跟踪文件但分支B没有,则导致该文件在结账时被删除。这同样适用于目录(因为Git只跟踪文件,并且根据需要创建/删除目录)。但是当我们切换回分支A时,文件将再次恢复。

总结一下这个;只有当文件是Git存储库的一部分并且新的结帐目标不包含该文件时,才会删除该文件。否则,它就会离开它(因为Git甚至不知道它)。

因此,如果您不希望在Git中跟踪该目录中的任何文件,请将其添加到.gitignore,不要手动将其添加到存储库。

答案 1 :(得分:0)

您可以在.gitkeep目录中添加library文件,告诉git将该目录保留在版本控制中。只是不要将任何文件提交到特定于环境的library

What are the differences between .gitignore and .gitkeep?

相关问题