1. 基础使用

根据GitBook官方文档-gitignore
以及:git-scm.com-Ignoring Files

这里列举几种常见的gitignore写法:


# 空行无意义,增加可阅读性
#
# 以#开头的行是注释 如果有需要匹配的内容是#开头的,那么在#前面加上反斜杠转义符,即\#

.ipynb_checkpoints/
# 不追踪.ipynb_checkpoints这个文件夹下的所有内容
**/__pycache__/
# 不追踪当前git项目中所有_pycache_文件夹中的内容,无论是几级目录中的
a/**/b
# 不追踪a文件夹下所有目录中b文件夹中的东西,如果b是个具体的文件,就不追踪这个文件

# C extensions 不追踪所有以.so后缀结尾的文件
*.so

# 不追踪该文件夹
/deploy/android_demo/app/cache/

参考:

2. gitignore并从远程git中删除要忽略的目录

参考:idea创建.gitignore并从远程git中删除要忽略的目录(如.idea)

问题描述:

  • remote的git中内容:
    在这里插入图片描述
  • .gitignore中的内容:
    d2l_zh_jupyter/self_exercise/.ipynb_checkpoints/
    
  • 本地git仓库的内容:
    在这里插入图片描述

可以看到,

  • 虽然我的.gitignore文件中包含了这个文件夹,但是remote的git仓库还是有这个文件夹,没有删除。但是其文件内容确实和本地不同。
  • 这是因为我是上传过一段时间之后,才创建的.gitignore文件,所以有些问题。

参考阮一峰的博客:常用 Git 命令清单
在这里插入图片描述

  • workspace: 直接写好的代码,以文件形式存在硬盘上的,其实就是保存在workspace工作区;
  • index/stage: git add之后会存入stage/index暂存区
  • repository: git commit之后会存入repository本地仓库;
  • remote: git push 之后会存入remote远程仓库.
# 停止追踪指定文件,但该文件会保留在工作区(如果是文件夹,需要迭代移除,需要加上参数-r)
git rm --cached -r d2l_zh_jupyter/self_exercise/.ipynb_checkpoints/
git add .gitignore
git commit -m "gitignore提交删除ipynb_checkpoints" 
git push origin master

执行以上操作,虽然workspace工作区中文件仍然存在,但是不会追踪(忽略),则上传之后,remote端的文件夹也会消失

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐