git忽略某个目录或文件不上传
1、首先我们通过git status来查看能被上传的文件,如下图所示:
我们查看到node_modules目录默认是可以被上传的,忽略方法有三个
1.修改 .gitignore 文件
我们需要在目录总创建一个.gitignore文件,可以在目录中右键选择git bash Here,如下图所示:
然后输入touch .gitignore,如下图所示:
此时就会在目录中新建了一个.gitignore文件,如下图所示
然后打开编辑器,将node_modules添加到文件中,如下图所示
忽略规则
target //忽略这个target目录 angular.json //忽略这个angular.json文件 log/* //忽略log下的所有文件 css/*.css //忽略css目录下的.css文件
保存退出
然后在执行git status查看,就没有node_modules目录了,如下图所示:
举例:.gitignore文件内容如下:
# Android generated bin/ gen/ classes/ gen-external-apklibs/ # Ant local.properties # Maven target/ release.properties # Eclipse .classpath .project .externalToolBuilders/ .metadata .settings # IntelliJ *.iml *.ipr *.iws .idea/ out/ # Mac .DS_Store # gitignore .gitignore
2.使用命令
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
git update-index --assume-unchanged FILE 在FILE处输入要忽略的文件。
如果要还原的话,使用命令:
git update-index --no-assume-unchanged FILE
3.使用.git/info/exclude
git 还提供了另一种 exclude 的方式来做同样的事情,不同的是 .gitignore 这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude 这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人。也不会提交到版本库中去。
举例:
# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ .gradle/ .idea/ .settings/ appcompat_v7/ bin/ build/ gen/ gradle/ out/ proguard/ ship/ target/ .classpath .gitignore .idea .project .readme .update-config *.iml local.properties
.gitignore 还有个有意思的小功能, 一个空的 .gitignore 文件 可以当作是一个 placeholder 。当你需要为项目创建一个空的 log 目录时, 这就变的很有用。 你可以创建一个 log 目录 在里面放置一个空的 .gitignore 文件。这样当你 clone 这个 repo 的时候 git 会自动的创建好一个空的 log 目录了。
文章参考:https://www.cnblogs.com/mafeng/p/7635228.html; https://blog.csdn.net/sunxiaoju/article/details/86495234