1. 好好的,为什么要用版本控制
1.1 单身吊丝一个人(就你一个人)
幻想一下以下场景,你在用你家Windows中的传奇软件"记事本”写一篇小说<<武松三打白骨精>>。经过了1个多小时的单干,你的小说中,武松好不容易把白骨精1打死了。(血腥情节1)
又过了一个小时,你的武松又把白骨精2打死了。(血腥情节2)
突然间, 你觉得白1号死得太迅速了,应该和武松增加些感情戏, 于是需要在情节1中增加一段床戏,而相应地,在情节2中也需要做些修改,因为白2和白1是亲姐妹。 (血腥情节1 + 武松床戏 + 新血腥情节2)
虽然白3还没打完,但是你的快乐写作一切都显得很顺利。
突然有一天(想找老版本)
你回头审视,发现糟了,白1和白2是两个单独的女吊丝,根本不应该有亲情关系,所以“新血腥情节2”应该采用原来的血腥情节2更合适些。忘记备份了, 重写么?
忽然又有一天(想要去冒险)
虽然3只白骨精还没完全打完,但是有一天你想冒险一下,想尝试一下白1和白2是同性恋的关系文章会怎样,或者想尝试一下,武松发现白骨精2是自己的妹妹会有什么样的一个反应。但是又不想动摇当前文章的主线,该怎么办?
人民的智慧是无穷的 --- 新建文件夹(123)
很明显,这个问题,只要创建一个新建文件夹,然后把旧的文件拖进去就完了,最多在后面标上序号, 于是你有了新建文件夹(1),..(2)...(n)...
出现问题了?
啊?--- 100个文件夹! 好吧,有一天有人向你约稿<<一千零一夜>>, 你会发现你的桌面上的新建文件夹已经多得快放不下了。
啊? --- 没有层级关系! 所有文件夹全放在桌面上,到底哪一个是我的支线情节?
啊? --- 天知道这几个版本之间有什么区别啊? 新建文件夹234和236之间有什么区别?
啊? --- 电脑被炸了? 谁在我家投了个炸弹?别搞笑好么?
于是悟空还没疯,武松已经替你行了疯的道儿。
1.2 版本控制能为我做什么
-
我不想新建文件夹。 版本控制会帮你新建一个类似“文件夹”的东西,并且会很明显地给你这个文件夹带上几个信息"时间,描述”。
-
我需要层级关系。 你需要把这些版本与版本之间的关系解释清楚,谁包含谁,谁是谁的前一版本,这时候版本控制软件更是在行。
-
我想知道版本之间的区别。 很简单,让它帮你去比较就好了。
1.3 Git 和 Github能帮我做什么
Git 是你亲爱的版本控制软件里的一种,但是它有别于他的亲戚(subversion, cvs)的原因在于,他是分布式(暂时没想明白有什么意义)的,而且速度更快。
Github 就像是一个远端的仓库,你的所有版本都可以推到(Push)仓库里放着一份。这样就能有效地防止炸弹袭击。而你的小Git就是一辆小推车,可以帮助你把版本库推进去,又拉出来。
2. 用Git写《武松三打白骨精》的故事
2.1 让我们有个Git(安装Git)
这一步真的只能靠你自己了哦. 当然现在讲的是命令行版的(command line)。(你当然可以根据个人喜欢,装个有图形界面的...)
http://git-scm.com/book/en/Getting-Started-First-Time-Git-Setup
2.2 建立一个根据地
现在你要.找一块Git 能开始为你服务的地方,比如一个叫"武松三打白骨精”的文件夹.然后输入git init,git开始能为你服务了