本次更新git rm 删除文件以及git ignore 忽略文件两种命令的详细使用流程
git rm 删除文件
删除文件一共有两种方式:
1.先从工作区删除文件,再从暂存区删除内容
2.把文件从工作区和暂存区同时删除
方式一 先删工作区再删暂存区
例如我在当前文件夹下输入ls -l
指令,此时显示出:
表示目前文件夹中有这6个文件,先来删除一个:
rm file1.txt
查看系统状态:
git status
显示结果:
系统会提示已经删除了file1.txt文件,绿色圆圈的内容是之前练习的遗留,大家可以不用理会。另外,我们可以注意到在
Changes not staged for commit:
这句话的下方,会提示
(use “git add/rm …” to update what will be committed)
这个的原因是我们只是删除了本地工作区的文件,而暂存区的文件还没有删除,此时使用 git ls-files
指令查看暂存区内容,显示结果如下:
此时发现file1.txt确实存在的,此时需要将数据提交给暂存区,输入git add file1.txt
或者git add .
指令,再次输入git ls-files
指令发现,已经不存在file1.txt了
先在工作区删除文件,接着更新暂存区再提交,这一系列操作非常麻烦,可以尝试另一种方法,使用git rm
指令。
方式二 git rm 删除指令
承接上步骤,再删除一个file2.txt
git rm file2.txt
git status
git ls-files
结果显示如下:
此时 git就把file2从工作区和暂存区同时删除掉了。
最后,一定要提交
git commit -m "delete file1.txt and file2.txt"
结果显示如下:
这样才算完整的操做流程。
- 注意:git -rm指令会同时删除本地和仓库文件,如果只想删除仓库文件但是不删除本地文件时,可以配合–cached参数
git rm --cached file2.txt
git ignore 忽略文件
指令作用:
- 忽略日志文件和文件夹
- 忽略所有.class文件
- 忽略所有.o文件
- 忽略所有.env文件
- 忽略所有.zip和tar文件
- 忽略所有.pem文件 …
应该忽略的哪些文件:
- 系统或者软件总生成的文件
- 编译产生的中间文件和结果文件
- 运行时生成日志文件、缓存文件、临时文件
- 涉及身份、密码、口令 ,秘钥等敏感信息文件…
git ignore 使用方法演示
首先创建一个access.log
echo "some log" > access.log
git status
结果显示如下:
再创建一个other.log文件
echo "other log" > other.log
git status
显示结果如下:
把access.log添加到.gitignore中
echo access.log > .gitignore
cat .gitignore
显示结果如下:
此时,再一次查看系统状态
git status
此时只能看到这两个文件但是看不到access.log文件
接下来把所有文件都添加到暂存区,继续查看系统状态
git add .
git status
显示结果如下:
最后提交
git commit -m "ignore file sample"
显示结果如下:
查看目前仓库中的文件
git ls-files
结果是,我们成功的忽略了access.log这个文件。
使用通配符* 忽略文件
在日常操作中我们会忽略所有的日志文件,因此可以使用通配符*.log来忽略所有的日志文件。 首先需要修改.gitignore文件,输入: vi .gitignore* 按i进入编辑模式,在文件中添加:*.log ,表示会忽略所有的.log文件, 按esc ,在结尾输入 :wq 保存退出
下面进行测试:
先建一个log文件
echo hello > hello.log
git status
可以发现,我们看不到hello.log的更改了,只能看到.gitignore的修改。
最后进行提交:
git commit -am "test ignore log"
- 注意 -am是同时完成加至暂存区和提交到仓库两个操作
再次查看系统文件git ls-files,发现已经忽略了hello.log
以上就是忽略文件的操作流程,如果想要忽略文件夹时,同样需要进行以下操作:
首先需要修改.gitignore文件,输入:
vi .gitignore
按i进入编辑模式,在文件中添加:name/ ,表示会忽略所有的文件夹, 按esc ,在结尾输入 :wq 保存退出,即可。