git:配置要忽略的文件和目录

Posted it_xiangqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git:配置要忽略的文件和目录相关的知识,希望对你有一定的参考价值。


配置要忽略的文件和目录

忽略带有 .gitignore 文件的文件和目录

可以将 Git 配置为忽略存储库操作的某些文件和目录。这是通过一个或多个文件配置的。通常,此文件位于 Git 存储库的根目录中,但也可以位于子目录中。在第二种情况下,定义的规则仅对子目录及以下目录有效。.gitignore
您可以在此文件中使用某些通配符。 匹配多个字符。更多模式是可能的,并在以下URL下描述:gitignore manpage*

例如,以下文件告诉 Git 忽略 and 目录和所有以 ~ 结尾的文件。.gitignorebintarget

# ignore all bin directories
# matches "bin" in any subfolder
bin/

# ignore all target directories
target/

# ignore all files ending with ~
*~

您可以在工作树的根目录中创建文件,以使其特定于 Git 存储库。.gitignore

该文件告诉 Git 忽略 Git 命令中的指定文件。您仍然可以通过使用参数(即使用命令)将忽略的文件添加到 Git 存储库的暂存区域。.gitignore–forcegit add --force [paths]

例如,如果要添加自动生成的二进制文件,但这很有用,但您需要对添加的版本进行精细控制,并希望将其从正常工作流中排除。

最好将本地文件提交到 Git 存储库中,以便克隆此存储库的每个人都拥有它。.gitignore

停止跟踪基于 .gitignore 文件的文件

如果将 Git 跟踪的文件添加到文件中,则不会自动删除这些文件。Git 从不忽略已跟踪的文件,因此文件中的更改只会影响新文件。如果要忽略已跟踪的文件,则需要显式删除它们。.gitignore.gitignore

以下命令演示如何从跟踪中删除目录和文件。这是示例代码,因为您没有在示例中提交相应的文件,因此该命令在您的 Git 存储库中将不起作用。.metadatadoNotTrackFile.txt

# remove directory .metadata from git repo
git rm -r --cached .metadata
# remove file test.txt from repo
git rm --cached doNotTrackFile.txt

向文件添加文件不会从存储库历史记录中删除该文件。

全局(跨存储库).gitignore 设置

您还可以通过该设置设置对所有 Git 存储库有效的全局文件。以下代码段演示了此设置的设置。.gitignorecore.excludesfile

# Create a ~/.gitignore in your user directory
cd ~/
touch .gitignore

# Exclude bin and .metadata directories
echo "bin" >> .gitignore
echo ".metadata" >> .gitignore
echo "*~" >> .gitignore
echo "target/" >> .gitignore
# for Mac
echo ".DS_Store" >> .gitignore
echo "._*" >> .gitignore

# Configure Git to use this
# as global .gitignore

git config --global core.excludesfile ~/.gitignore

全局文件仅在本地可用。.gitignore

本地每个仓库忽略规则

您还可以通过编辑存储库中的文件来创建本地每个存储库的规则。这些规则不会与存储库一起提交,因此不会与其他人共享。.git/info/exclude

例如,这允许您排除本地生成的文件。

使用 Git 跟踪空目录

Git 忽略空目录,即它不会将它们置于版本控制之下。如果要跟踪 Git 存储库中的空目录,最好将调用的文件放在该目录中。由于目录现在包含一个文件,Git 会将其包含在其版本控制机制中。.gitignore

该文件可以称为任何内容。有人建议调用该文件。这种方法的一个问题是,构建系统不太可能忽略它。这可能会导致将文件复制到输出存储库,这通常是不需要的。.gitkeep.gitkeep.gitkeep


以上是关于git:配置要忽略的文件和目录的主要内容,如果未能解决你的问题,请参考以下文章

git的推送忽略

git配置忽略文件(已提交文件和目录的忽略)

git命令行其他

Git

Git忽略规则.gitignore梳理

git忽略vim临时文件