HbUsageRepositoryFile - 101camp/playground GitHub Wiki

版本仓库存放文件指南

关联

42h[TASK]版本仓库中应该放什么文件?

概述

  • git push 前必读
  • 仓库里应该放哪些文件格式,是做项目和协同重要的部分

意义

  • 放什么文件反映对当前项目的理解
    • 你是否知道在做什么?
    • 你的项目需要哪些文件?
    • 你的项目不需要哪些文件?
  • 版本仓库是保险库, 恢复项目环境
    • 远程
    • 何时何地, 有电脑和网络就可以工作
    • 你的同事 clone 仓库后,是否可以立刻工作?

目标

  • 文件是否值得放入的:简洁的公式/判定指标

操作

明确项目中的有用文件

  • 描述自己的项目应该出现哪些格式的文件
  • 源代码
  • 其他生成代码的应用程序
  • 源数据文件
  • 项目文件/项目文档

明确项目中会产生的无用文件

  • 格式
  • 可被容易再次生成的文件不需要放
    • eg: .py
    • eg: 缩略图
  • 图片
    • 课程中的 demo 网站中的图片
      • 静态的, 美化用, 对工程无用.
      • 照片太大, 占用流量和内存

忽略这些文件, 不上传到版本库

  • .gitignore 文件用法
    • 尝试创建分支时, 保留.gitignore
    • 尝试了解.gitignore 里面的文件及格式是什么
    • 根据自己项目的需要, 添加要忽略的文件名进 .gitignore
      • .gitignore 只忽略在其被添加以后的文件.
      • 之前的文件还是要删除的.
    • 可使用GitHub 提供各编程语言的模板

基本上使用这个模板,再根据自己的实际情况增加一些特殊情况,比如 Ulysses 的特殊文件,比如某些wiki 项目根据 Markdwon 自动生成的一些 HTML 文件,比如一些无用的 图片/ 数据库文件等等 就可以啦。

上传前检查

  • 查看文件夹里的内容

    • 提交前 git diff HEAD 查看修改
      • 编辑文件完成后
      • git pull 更新本地仓库
      • git add . 添加暂存区
      • git diff/git diff HEAD 检查差别
      • git commit 提交信息,再次检查修改的文件.
  • 确定都是要上传版本库的

    • 如果不是, 删除之.
  • 上传

    • git push 推送
  • 尽量避免上传后才发现需要删除

summary

  • 明确项目应该有的文件
  • 明确不该有的文件
  • 用. gitignore 工具忽略之

故事

<-- add audio to text · DebugUself/du4proto@c44b989

追加了40M 音频文件到仓库...

vivian : 大妈,这些文件不包含敏感数据呢,还要删除历史记录吗?

@vivian 和敏感信息无关, 而是仓库体积问题:

  • 0: 透明花园, 对于所有人都是可下载的, 所有分支
  • 1: 二进制文件没有差异对比意义, 每次都是全体积 push
  • 2: github 仓库大小有限制, 好象是500M, 那么你的私人任务分支占用过多体积的话, 对其它怼友来说, 就不够怼了
  • 3: 这批语音切分样本, 本身只是一次例怼的语音, 过往有50多期, 超过70小时的录音, 可以切为4200份样本, 你都准备 push 到仓库中嘛?

所以, 版本仓库中应该追踪的文件简单的判定标准:

  • 0: 纯粹文本的
  • 1: 人工无法/难以生成的
  • 2: 一但缺少, 代码无法运行的配置
  • 其它的, 都不应该 push 到仓库中,特别是大家习惯的 .doc 之类专用软件文件

增补

参考

Changelog

  • 181006 DAMA appended zip rules
  • 2017-05-06 Liguanghe 根据 Joe 建议改稿, 发稿 90 min
  • 2017-05-04 Liguanghe 听录音, 写 wiki 初稿 100 min
⚠️ **GitHub.com Fallback** ⚠️