在使用 git 提交代码的时候,有一些文件是不需要提交的,比如一些系统自动生成的一些 log pid tmp 的目录。这时我们就可以通过设置 .gitignore 文件,来忽略哪些不需要提交的文件。
一个标准的 .gitinore 文件是这样的:
# 不提交以 .a 结尾的所有文件
*.a
# 在规定了不提交 .a 结尾的文件的时候,依然提交 lib.a 这个文件
!lib.a
# 忽略 TODO 的文件,不是忽略 TODO 的文件夹
/TODO
# 忽略 build 下面的所有文件
build/
# 忽略 doc 目录下的 *.txt 文件,如果是 doc 下边的子目录里有 *.txt 文件,这写文件不受这条规则的限制
doc/*.txt
# 忽略 doc 及其子目录下的所有 *.pdf 的文件
doc/**/*.pdf
实验:
在我的文件仓库里面,有这样一些文件,build.sh 和 test.sh 是 shell 脚本文件;Dockerfile 也是一个文件,但是这个文件没有后缀;frontpage 是一个文件夹,里面有很多的文件,其中还包括一些文件夹;manager 也是一个文件夹,里面还包含一些文件和文件夹:
现在要实现这样的需求:
1. 提交代码的时候,不提交 目录下面 .sh 的脚本文件
2. 忽略 Dockerfile 文件
3. 不提交 frontpage 这个文件夹
4. 不提交 manager 下的子目录 images 下的以 .png 结尾的文件,但是依然提交 example.png 这个文件
之后,我修改了 Dockerfile test.sh build.sh 并且修改了frontpage 目录下面的一个文件,然后把 manager 下边的 images 文件夹重命名成了 image
使用 git diff 查看文件新的改动如下:
然后将修改提交:
git add .
然后使用 git status 来查看文件的提交状态,如下:
然后提交本次修改: