https://mp.weixin.qq.com/s/uxNyhONyMJ1qj9fm816IRg (2018-07-23)
Git具体来说是三个版控制技术(version controlsystem),当然除了其它的版控制技术,如CVS, SVN,Mercurial, Fossil等。许多你熟识的互联网服务项目都是采用的Git,比如说GitHub和GitLab。你也能不采用那些互联网服务项目,创建三个商业机构的Git服务项目。
有关版控制,他们会时常碰到,最简单的是,你把你的该文原稿someone的指导老师,指导老师对当中的文本做了部份修正,也是那时有三个版的该文,当指导老师把修正的版someone后,你会重新整理分拆三个版,正式成为三个最后的版。
但,有这时候,指导老师辨认出该文除了许多欠妥含意,又在他的版中作了修正,那个这时候你辨认出修正的版当更越多,分拆到一同当更愈十分困难!大部份在你的该文文档夹里头再次出现了:
该文原稿.docx,该文原稿1.docx,该文原稿1_修正.docx, 该文原稿1_修正1.docx, 该文原稿1_修正2.docx, 该文原稿1_修正_完整版.docx, 该文原稿1_修正_最完整版.docx,该文原稿1_修正1_死也不修正版.docx。。。。。
那个这时候,版控制技术就能精简那些无谓的文档,让你能很明晰的管理工作好各版的文档。
Git镜像
Git对你的文档作镜像,并把它冰冻。当你在修正文档或标识符的这时候,辨认出修正路子是错的,那个这时候能回到到以后储存镜像的文档状况。
每天镜像,Git都采用hash身份验证,因此每一次对文档的小小的发生变动,即便而已三个字符,也单厢被Git检验到。
当你和他们密切合作一同写标识符的这时候,你可以很随心所欲地把自己的标识符分拆到你的建设项目中,自己能接著在那个分拆的标识符上竭尽全力修正。这也是Git组成部份。
Git系统中的文档有三种状况:modified,staged和committed。当你修正文档时,该文档处于modified;当你采用git add命令,该文档进入staged状况,也是将该文档加入Git,被Git追踪修正变化;最后,采用git commit命令来做镜像,描述文档哪些做了改变。每一次commit就会生成三个历史版。
[是不是感觉像区块链技术,都是采用hash身份验证对每一步进行确认,而已区块链是单向不可逆的,而Git是能回到历史版的。]
Git分布式
在不同计算机上工作是三个很棘手的问题。因为你要时刻保证当下的文档是最新的版,同时还要能把最新的版分享给他人。他们常用的方式是采用共享服务项目(如云盘、dropbox等)和邮箱附件。但这两种方法都不是最好的方法,而且低效、易错。在你分享给自己之后你就不能再修正该文档,以确保自己得到的是最新版的文档。
Git采用分布式文档管理工作,能将整个远程Git库拷贝到本地,然后把它当作唯一的三个版来处理,当自己最文档修正了之后,可以通过简单的命令获得自己的修正,你能将自己的修正推送到远程库,供自己采用。也是Git有三个共同的文档库,大部份参与人员都是围绕着三个库来修正编辑文档的。这和集中式的文档管理工作不同,集中式文档管理工作要求必须把文档同步之后才能创建新的修正版。
总之Git也会有再次出现文档冲突的这时候,比如说我把这本书的最后一行做了修正,而此时你却把整行给删掉了。那个这时候Git会有自己的冲突处理方式,此处不再介绍。
Git的优点
同步工作:每三个人都能同时对版进行修正,而且你的修正是在本地电脑,不会影响到自己的工作。2. 快速发布:你的文档修正版能很随心所欲的推送到master主组成部份上,如果是写标识符,通过在自己组成部份上测试,可以确保master组成部份上的标识符不会有bug。
3. 强大的社区支持:Git是开源的,事实上已经正式成为了版控制的标准,网上有强大的社区支持,碰到十分困难,能在社区中寻找到帮助。
甚么这时候采用?用它做甚么?
在使用Git以后还要考虑许多你的文档格式。Git能很好的处理文本格式文档,包括许多程序的源标识符。而且Git的版控制并不是备份整个版,而是仅记录当中修正的地方,大部份能大大节省储存空间。但如果你修正的文档含有许多的非文本文档,比如说图片、视频、音频等,Git很难知道哪些地方做了修正,那个这时候Git会备份整个文档,会占用较大的储存空间。不过,那时有些Git插件也能处理那个非文本文档,如git annex和Git media等。对于他们关心的是word文档,Git同样只能比较出文档的不同,不能指出哪些地方不同。能采用“pandoc”插件来看哪些地方不同。
======= THE END ========
https://opensource.com/resources/what-is-git
https://docs.microsoft.com/en-us/azure/devops/git/what-is-git
https://github.com/vigente/gerardus/wiki/Integrate-git-diffs-with-word-docx-files