git使用学习四、git add忽略指定文件夹与文件
前言
- 前言
- .gitignore
- 解决提前git commit导致.gitignore失效的问题
- 解决错误添加数据集导致.git文件夹太大的问题
本篇记录一下使用.gitignore指定git忽略某些文件夹与文件。
.gitignore如果.git根目录下有数据集、大模型等不适于添加到git项目中的文件夹和文件,可以在.git根目录下添加.gitignore文件,在该文件中添加希望忽略的文件和目录名。
例如根目录下有dataset/
,weights/large_weight.ckpt
,train.py
,utils/
,我们希望把train.py
与utils/
添加到本地仓库,则可以创建一个.gitignore
文件,内容为:
# .gitignore
dataset/
weights/large_weight.ckpt
然后在终端输入指令:
git status
可以看到,此时只剩红色的train.py, utils/
等文件的状态被git捕获,而.gitignore
中的文件和目录不会显式状态。
然后就可以更新仓库了:
git add.
git commit -m 'update .gitignore'
注意:如果在添加.gitignore
前就已经git commit
过了,那么.gitignore
文件将失效。
先把之前提交时的git缓存删除:
git rm --cached -r .
然后再把包含.gitignore
文件的版本添加到仓库中:
git add .
git commit -m 'update .gitignore'
解决错误添加数据集导致.git文件夹太大的问题
第一种解决方法是直接把.git
文件夹删掉后git init
,再添加.gitignore
后git add .
git commit
,简单高效,但会丢失本地仓库版本和提交历史(慎用!)。
第二种方法也比较简单,但清理效果不如第一种:
git gc --prune=now