详解 git 忽略文件 删除远端仓库的文件

忽略指定类型的文件 或 某个指定文件(夹)

将已经push到github的文件删除, 但本地的文件不删除 (写忽略规则之前就把这个文件夹push了 T_T )

详解 git 忽略文件 删除远端仓库的文件

将想要忽略掉的文件的相关记录(如下图) 清理掉
(包括保留本地文件和不保留两种情况)

详解 git 忽略文件 删除远端仓库的文件

解决方法 问题1 (忽略指定类型的文件 或 某个指定文件(夹)) 本地仓库忽略

本地仓库的文件忽略规则可以在 .git/info/exclude 文件中添加. 对当前这个仓库下的所有文件起作用. 这些忽略的文件不会提交到共享库中, 因而不会被协作者所共享. 规则如下:

*.[oa] # 忽略以 o 或 a 为拓展名的文件 *~ *.exe .* # 忽略所有以 . 开头的文件 test.cpp # 忽略这个文件 /test/ # 忽略 **根目录** 下的 test 文件夹里面所有的内容

(更多规则可以参考shell的正则表达式)

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

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

全局忽略

不需要在每一个仓库中添加 .gitignore 文件或者修改 exclude文件(毕竟在.git文件里乱动可能项目就没了), 只需要在用户账户文件夹下建立.gitignore_global文件就可以忽略我们想忽略的内容, 步骤如下:

在git bash下执行命令 git config --global core.excludesfile ~/.gitignore_global, 然后你会发现, ~/.gitconfig 文件里多了一行

git_config里的变化

创建 .gitignore_global 文件, 在里面写上规则就好了

问题2 (将已经push到github的文件删除, 但本地的文件不删除) git rm -r --cached .vscode # 将文件夹从暂存区中删除 git commit -m 'delete .vscode config' # 将修改后的暂存区合并到HEAD中 git push origin master # 推到远端

详解 git 忽略文件 删除远端仓库的文件


顺便复习一下查看暂存区命令 git ls-files

问题3 (将想要忽略掉的文件的相关记录清理掉) 删除暂存区的文件, 同时删除本地的文件 git rm file_name # 删除本地文件, 同时也从暂存区中删除 git commit -m "delete" # 合并到HEAD中 git push origin master 提交删除记录

由于我已经手动将 .exe 文件删除, 所以只需要执行

git add -A git commit -m "delete" git push origin master

Reference List:

https://cwind.iteye.com/blog/1666646

https://www.cnblogs.com/e206842/p/7121927.html

https://www.cnblogs.com/Cherry-B/p/4583505.html

https://www.jianshu.com/p/abca119649b5

https://www.runoob.com/manual/git-guide/

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjswy.html