git .gitignore 和.git/info/exclude 的实现方法(实测)

解决方案A:

1. 前置条件:在向.gitignore添加忽略文件之前,一定要保证那些文件未被git跟踪,

因此,可能需要先使用命令

git rm --cached filename 

将它们从索引中删除。

2. 本地仓库忽略

本地仓库的文件忽略规则可以在 .git/info/exclude 文件中添加。这些忽略的文件不会提交到共享库中,因而不会被协作者所共享。

exclude文件:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
ignored_a_file.txt

ignored_a_file.txt 为要被忽略的文件。

3. 在本仓库目录下,运行:

git ls-files --others --exclude-from=.git/info/exclude

注: 在本仓库目录下,运行上条命令行。

解决方案B:

1. 前置条件:同解决方案A。

2. 当前工作目录添加文件忽略

对于每一级工作目录,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录。

exclude文件,文件内容的格式,每一行为一个需要被忽略的文件名,含扩展名。

但在创建并编辑这个文件之前,一定要保证要忽略的文件没有添加到git索引中。

如需要,使用命令git rm --cached filename将要忽略的文件从索引中删除。

3. 在本仓库目录下,或其他能满足该条指令运行的目录下。运行:

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

注: 这是操作系统的目录路径。

注意C:

1. 如果步骤1~3后,还是存在无法忽略时,随意修改源程序,以保证能够再次运行 build,这样就OK了。

2. .gitignore 和.git/info/exclude的主要区别,是最后的第3步运行的命令,不同。

3. 似乎这样运行,也可以避免 commit提交:git restore <file> # <file>包含系统路径

$ git  status --ignored
HEAD detached at v0.0.1
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
modified:   .gitignore
modified:   ignored_a_file.txt
Ignored files:
  (use "git add -f <file>..." to include in what will be committed)
ignored_b_file.txt
no changes added to commit (use "git add" and/or "git commit -a")

摘抄D: .gitignore的格式规范

• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。

• 可以使用标准的 glob 模式匹配。

• 匹配模式最后跟反斜杠(/)说明要忽略的是目录。

• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

参考:https://www.bbsmax.com/A/kPzOGmO3zx/

`.gitignore` 文件是一个文本文件,用于告诉 Git 软件哪些文件或目录应该被忽略,以便在版本控制中只跟踪特定类型的文件。对于 `.git/objects` 这个特殊的目录,你需要确保它不会被意外地提交到仓库中,因为这是Git内部使用的缓存文件,不应该被打包进历史记录。 以下是检查配置 `.gitignore` 文件来正确忽略 `.git/objects` 步骤: 1. **打开 .gitignore 文件**:在项目根目录下,找到名为 `.gitignore` 或 `.git/info/exclude` 的文件(对于旧版本的 Git,`.info/exclude` 文件也可能存在)。如果没有,可以手动创建一个。 2. **查找现有规则**:检查文件是否已经有类似 `*.git/*` 或 `!.gitattributes` 这样的行,这通常表示忽略所有 `.git` 开头的目录。如果没有,需要添加这一条。 示例: ``` # 忽略.git目录下的所有内容 *.git/* ``` 或者更精确一点: ``` # 忽略.git/objects目录 .git/objects/ ``` 3. **确认忽略范围**:确保你只想忽略 `.git/objects`,而不是整个 `.git` 目录。有时 `.git/config` 其他临时文件也应被忽略,所以可以根据实际情况调整。 4. **保存文件**:编辑完 `.gitignore` 后,记得保存你的更改。 5. **验证效果**:使用 `git status` 检查当前目录 `.git` 目录,确认 `.git/objects` 是否已经从暂存区移除。 6. **提交更改**:如果一切正常,可以将 `.gitignore` 文件的更改提交到版本控制系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值