[每周一更]-(第44期):GIT版本控制之忽略文件

在这里插入图片描述

基础概念

在 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假装看不见目标文件的改变,但文件本身还是在 Git 的历史记录里的,所以团队的每个人在 fetch 的时候都会拉到目标 文件 的 变更。团队要每次对运行改命令,否则忽略不掉

    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看不见文件,要团队中每个人都运行改命令,否则忽略不掉

猜你喜欢

转载自blog.csdn.net/hmx224_2014/article/details/135279986