gitignore 的作用
在使用Git
版本控制时,必须要用.gitignore
这个文件来告诉Git
那些文件或目录不需要添加到版本控制中。通俗点说,就是不需要git push
到远程仓库。
在平时开发过程中,开发目录下会有各种格式的文件,比如 C 语言除了.c
源码,还会有.o
目标文件,没有后缀的可执行程序等等,假如你要进行深度学习类的开发,如图像识别,需要训练大量数据,如果这些训练数据也到跟踪管理,那push
一次就可以下班回家了。
但是我们怎么让Git
知道哪些文件需要跟踪,哪些文件不需要呢,这时候.gitignore
文件就起作用了。
常用规则
简单介绍一下常用的规则,虽然后面有现成的模板,但是我们还是了解一下常用规则,能看得懂.gitignore
里写了啥。也方便自己编写一些规则适应自己的工作。
/test/ # 过滤整个test文件夹
*.o # 过滤所有.o文件
/test/hello.o # 过滤test文件夹下hello.o这个文件
!src/ # 不过滤src这个文件夹
!*.c # 不过滤.c文件
通过 gitignore 文件更新远程仓库
上面说到我们在不同环境下需要制定不同的规则,但是每次都要重新写一遍,又或者不知道制定什么样的规则,还是挺麻烦的。
首先推荐一个.gitignore
模板仓库,在平时工作学习中遇到的各种语言环境下的模板都能找到。这是广大开发人员总结的一些规则。
最近在学习Qt
,在所有模板中搜索关键字,找到了Qt.gitignore
这个模板打开并复制,在自己本地仓库里新建一个.gitignore
文件,将复制的内容粘贴进去。
现在就要解决如何更新远程仓库的内容,因为我在使用.gitignore
文件之前已经向远程push
过了,现在需要删除不需要的文件。
git rm -r --cached .
rm
就是Linux
下常用的删除命令,-r
表示递归删除,--cached
表示需要在本地端(工作区)保留文件,.
表示所有文件。
git add . # 重新添加所有文件到暂存区,然后提交,推送
git commit -m "update"
git push