在 Git 中,可以通过 .gitignore 文件来指定不需要纳入版本控制的文件或文件夹,这些被忽略的文件或文件夹不会被提交到仓库中。
在项目根目录下创建一个名为 .gitignore 的文件,并在其中列出需要忽略的文件或文件夹。一些常见的示例:
# 忽略所有 .a 文件
*.a
# 但是要跟踪 lib.a,即使之前忽略了所有 .a 文件
!lib.a
# 忽略所有 .txt 文件
*.txt
# 忽略 doc/ 目录下的所有文件
doc/
# 仅仅忽略 doc/notes.txt 文件
doc/notes.txt
# 忽略 build/ 目录下的所有文件夹
build/*/
# 忽略 doc/build/ 目录下的所有文件
doc/build/*
# 忽略文件名为 README.md 的文件
README.md
# 忽略所有扩展名为 .log 的文件
*.log
在 .gitignore 文件中使用 # 符号开头的行表示注释,这些行会被 Git 忽略。
使用 ! 符号可以取消忽略,例如在上面的示例中取消忽略了 lib.a 文件。
需要注意的是,.gitignore 文件只能忽略尚未被 Git 跟踪的文件。如果文件已经被纳入版本控制中,那么 .gitignore 文件对它将不起作用。
此时可以使用 git rm --cached 命令将该文件从 Git 中移除,并加入到 .gitignore 文件中。
参考:https://zongren.me/2016/05/23/remove-files-from-git-version-controll/
如果你想把一个文件从版本控制中移除,并且保留本地的文件,首先需要把这个文件加入到gitignore文件中。然后执行以下命令就可以了。
git rm file_path --cached
以上命令将file_path所代表的文件从版本控制中删除,并保留本地文件,此外还要进行commit操作才能将服务器端的文件删掉。
如果想把一个文件夹从版本控制中删除并保留本地的文件,只需在上述命令的基础上加上-r参数,即
git rm -r folder_path --cached
如果想把所有gitignore中的文件从版本控制中删除的话,需要执行以下两个命令,即先移除所有文件,再执行添加所有文件(这次会忽略gitignore中的文件)。
git rm -r . --cached
git add .
1、还没有加到版本控制中
(1)还没有git add
在 .gitignore中添加
(2)已经git add
先 git rm -r --cached 文件
在 .gitignore中添加
2、已经加到版本控制中
先 git rm -r --cached 文件
在 .gitignore中添加
最后 git commit -m '提交.gitignore'
注解:
1、git update-index --assume-unchanged
git update-index --assume-unchanged /path/to/file #忽略跟踪
git update-index --no-assume-unchanged /path/to/file #恢复跟踪
2、修改.gitignore添加完忽略文件,然后执行下列命令
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
也是假装让git看不见文件,要团队中每个人都运行改命令,否则忽略不掉