Plumbing and Porcelain
首先这里是一个空目录:
cd gitlearn; git init .
这时候会在项目的根目录下生成一个隐藏的目录,目录名为.git。
下面解释各个目录的作用:
- info
info 目录包含一个全局排除文件,用于指定你不想在 .gitignore 文件中跟踪的忽略模式。具体来说:
info 目录:这是 Git 仓库中的一个目录,位于 .git/info 路径下。
全局排除文件:该文件名为 exclude,它用来指定全局的忽略规则。
忽略模式:这些是你希望 Git 忽略的文件或目录的模式(如文件名或路径)。
不想在 .gitignore 文件中跟踪:有些忽略规则你可能不希望包含在仓库的 .gitignore 文件中,因为 .gitignore 文件通常是和仓库一起共享的,而 info/exclude 文件则是本地的,不会被推送到远程仓库。
详细解释
在 Git 中,忽略文件的规则可以通过多个地方来定义:
仓库级别的 .gitignore 文件:位于仓库根目录,用于忽略特定文件或目录。
全局 .gitignore 文件:适用于用户主目录下的所有仓库,通常用于忽略特定类型的文件,如操作系统生成的临时文件。
info/exclude 文件:这是一个本地的忽略文件,它不会被推送到远程仓库,只影响当前仓库。
示例
假设你有一个 Git 仓库,并且你不希望将一些特定的本地文件包含在版本控制中,但这些文件规则又不适合放在共享的 .gitignore 文件中。
创建或编辑 info/exclude 文件:
echo “*.log” >> .git/info/exclude
echo “temp/” >> .git/info/exclude
这些忽略规则将只在当前仓库中生效,而不会影响到其他用户或推送到远程仓库。
例子解释
*.log:忽略所有 .log 文件。
temp/:忽略 temp 目录及其所有内容。
小结
info 目录中的 exclude 文件用于定义只在当前仓库有效的忽略规则。这些规则适用于你不希望包含在共享的 .gitignore 文件中的情况,例如本地生成的临时文件或目录。这样,你可以在不影响其他协作者或远程仓库的情况下管理本地的忽略规则。
其他省略