基础概念
在 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 文件中。
GIT版本控制中删除文件
参考: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 .
GIT如何移除某文件的版本控制
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看不见文件,要团队中每个人都运行改命令,否则忽略不掉