Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之⼀)。
Git有什么特点?简单来说就是:⾼端⼤⽓上档次!
什么是版本控制?
如果你⽤Microsoft Word写过⻓篇⼤论,那你⼀定有这样的经历:
- 想删除⼀个段落,⼜怕将来想恢复找不回来怎么办?有办法,先把当前⽂件“另存为……”⼀个新的Word⽂件,再接着改,改到⼀定程度,再“另存为……”⼀个新⽂件,
- 这样⼀直改下去,最后你的Word⽂档变成了这样:
- 过了⼀周,你想找回被删除的⽂字,但是已经记不清删除前保存在哪个⽂件⾥了,只好⼀个⼀个⽂件去找,真⿇烦。
看着⼀堆乱七⼋糟的⽂件,想保留最新的⼀个,然后把其他的删掉,⼜怕哪天会⽤上,还不敢删,真郁闷。 - 更要命的是,有些部分需要你的财务同事帮助填写,于是你把⽂件Copy到U盘⾥给她(也可能通过Email发送⼀份给她),然后,你继续修改 Word⽂件。⼀天后,同事再把Word⽂件传给你,此时,你必须想想,发给她之后到你收到她的⽂件期间,你作了哪些改动,得把你的改动和她的部分合并, 真困难。
- 于是你想,如果有⼀个软件,不但能⾃动帮我记录每次⽂件的改动,还可以让同事协作编
辑,这样就不⽤⾃⼰管理⼀堆类似的⽂件了,也不需要把⽂件传来传去。如果想查看某次改
动,只需要在软件⾥瞄⼀眼就可以,岂不是很⽅便? - 这个软件⽤起来就应该像这个样⼦,能记录每次⽂件的改动:
版本 | 用户 | 说明 | 日期 |
---|---|---|---|
1 | 张三 | 删除了软件服务条款5 | 7/12 10:38 |
2 | 张三 | 增加了License人数限制 | 7/12 18:09 |
3 | 李四 | 财务部门调整合同金额 | 7/13 9:51 |
4 | 张按 | 延长了免费升级周期 | 7/14 15:17 |
- 这样。你就结束了手动管理多个版本的史前时代,进入到版本控制的20世纪。
版本控制操作
git reset --hard 版本ID
版本ID可以用git log来查看:
$ git log
commit 474755fdd22097bc35a91e16f5e1071811077271 (HEAD -> master, origin/master)
Author: 研究院电脑 <xxxxxxxxxx@qq.com>
Date: Wed Jan 2 17:36:16 2019 +0800
其中commit后面的序列数字就是版本ID,它是⽽是⼀个SHA1计算出来的⼀个⾮常⼤的数字,⽤⼗六进制表示。
当前你可以回退到之前的版本,但是当你回退到之前的版本后,你就看不到现在的版本ID了,所以会退之前,最好备份现在的版本ID,方便回到未来。