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