关于版本仓库

“勾引”大妈可以触发隐藏任务,今天继续。

版本

Github的上下文里,个人理解一个版本对应一次commit,而一次commit只能做一件事。例如写完一个段落之后,执行一下commit;或者编写完一个方法,调通基本功能之后,执行一下commit

大妈说:

  • 五轮改进状态的丢失,对你有什么损失? 至少4类....

目前相关知识水平有限,只能想到三点。如果这是经验型知识,希望大妈可以分享个相关的案例小故事:

  1. 各个迭代之间可执行版本丢失,很有可能丢失了多次修改中出现的最优版本
  2. 重构的代码会直接覆盖掉原有代码,如果重构失败将影响功能正常运行
  3. 迭代间的代码没有备份,所有改动都体现在编辑器的redo中,编辑器退出后全部丢失

版本仓库

Repository的定义,从git用户的角度看来就是一个存放所有工程文件、历史版本和配置的地方。

而从git工作原理的角度来讲,版本仓库由一系列commit objectsheads组成。而commit object包含了某个具体时间点下一系列项目文件,parent commit objects的引用,还有一个SHA1 namehead则是一个指向特定commit object的引用。

仓库的使命

仓库的使命是实现版本控制,团队协作,数据共享同步和备份。

举例来说,几个人组成一个团队翻译一份英文电子文档,每个人负责翻译的章节不同,也分别负责不同的章节进行校审,每个人参与到项目中的时间、地点不同。在没有版本控制的情况下工作,简直就是灾难。

什么是工程文件

工程文件在不同的上下文里有不同的体现,对OMOOC2.py仓库而言,这是一个存放Python学习过程的仓库,记录整个学习期间产出的代码、教程、文档、总结等,会有.md文件,.py文件,各种截图等。

版本仓库中应该存放什么

不应该出现的自然是各种.log文件,.zip文件之类。大妈问有没有简单的判定方式可以交给大家,按照自己目前的能力回答这个问题,所有中间态文件、临时文件、编译日志、代码运行结果等都不要出现。

范例的话,可以参考OMOOC2.py的仓库模板,仓库的工作目录下的.gitignore屏蔽的文件都是没有必要出现在仓库中的。所以我强行git add -f添加history.log到仓库实在不应该。也不应该将版本仓库当成网盘,给一个.zip文件的链接供大家下载文件。

results matching ""

    No results matching ""