git全方位教程-由具体到抽象-摘自架构师小秘圈和runoob.com
来源:互联网 发布:风险矩阵图什么意思 编辑:程序博客网 时间:2024/05/15 04:29
首先摘录一段架构师小秘圈发布的对git的“通俗”理解,瞬间就知道git的基本操作了有木有
老司机教你如何使用git来管理小黄书?
胸怀大志的你,立志要写小黄文
于是你在本机奋笔疾书了三个月,然后电脑硬盘被某白色液体弄坏了...
卒于是你想:哎,要是我能把小黄文存到远程服务器上就好了,这样就算我本地挂了,我再从远程拷一份,不就666了?
说干就干,
从此你每次写小黄书时,
都要在远程服务器里创建一个专门的文件夹,
来存放这本小黄书的章节,以及相关资料
这就叫做 create remote repository而在你本地的那个,
和远程服务器一毛一样的那个,
每个小黄书一个的文件夹
就叫做 local repository但是每次用邮件或者FTP(文件传输协议)来同步 remote 和 local 的 repository,简直麻烦
于是你搞了一个叫git的程序,帮你管理 repository,
用 git init 来 create repository,
用git clone 将 remote repository clone到 local,
用git push 将local repository clone到 remote然而,在一个美丽的夜晚
当你正要 push 到远程时,
电脑突然断电了,
卒这可把你气坏了
原以为有了远程服务器,就可以美滋滋了
居然会在push到远程之前就搞幺蛾子
于是你清楚的意识到
git需要有一个类似ctrl+s的东西
能让大家实时保存修改
呕吼,这就是git里的git add这自从你有了一个小黄书的远程服务器,就再也没因为白色液体而返工。
于是乎,你的小黄书写的越来越顺手,很多影视都借鉴与你,所以你赚了个满盆盈利
这是,你琢磨起了组建团队,
毕竟以你的经验,可以监管和指导一群新人来写小黄文
但新人之所以称为新人,就是因为他们每个人只擅长一部分,比如:
A只擅长描写日常撩拨,B只擅长写床笫之欢,C只擅长写渲染气氛你一想:
如果让他们配合着写,每个人只写自己拿手的
那不仅质量高,而且并行写的速度快
客户保证满意说干就干,
你定好了故事的发展大纲,
然后给ABC各分了一块他们所擅长的部分,让他们去具体写
两个月后,他们终于写完了,
虽然拖remote repository的福,到是没有丢失过数据
但当你要去把ABC写的内容合并时,
呵呵呵,
A的第一段应该在B的第二段后面,C的第一段应该放在A的第一段前面,A的第二段又要跟在C的第二段后面,C的第二段应该放在B的跌三段后面%¥&&%¥#……绝望吧,
你必须把ABC写的东西一行行的看过去
才能理清楚他们写的东西之间的逻辑
才能将他们写的东西正确的拼凑在一起摔,这样拼凑简直不是人能干的事
于是你想了个办法:
你把最开始定的那个大纲啊,作为master
让ABC每天都把他们写的东西,都加到mater上
这就叫做创建分支
于是有了git branch <newBranch>啊,这个git branch不管在remote 还是 local都可以进行
反正相互都会同步的嘛现在你的团队决定再写一本《我的香艳小秘书》
于是乎,你在远程仓库里,
先创建了一个名叫《我的香艳小秘书》的 remote repository,
现在这个remote repository只有一个默认的 master 的分支,
然后git clone到你在本地,把大纲写到master分支后
git push 到 remote repository的 mater 分支,
你又用 git,基于 master 分支,给ABC分别创建了一个分支,
然后 ABC 每个人,在本地用 git clone 了 remote repository,
啊哈,ABC 就都在本地都有了一个名叫《我的香艳小秘书》,
但处于不同分支的 local repository
诶呀呀,
C第一个完成了第一天的工作,
于是C开开心心的把push到自己在remote repository里的分支
正准备收工,溜的时候,想起你要求他们:
每天下班时要把自己的分支和master分支合并
于是C在remote repository里,将自己的分支merge到了master分支终于A也终于写完了,A也push到remote repository
但当A要merge到master分支时,
master不知道要把A新加的东西,是放到C新加的东西的前面,还是后面,还是里面...
于是不得不拒绝A 的merge请求,orz,A就只好先在自己本地的分支里手动合并,
即:把C增加的东西放到合适的位置上,
再git push 在A的remote 分支,
之后再merge 到 master分支,
这就叫做解决冲突但第二天早上你一看master,有几句的是什么狗屎哦,
于是你把A叫过来一顿臭骂,
然而这几句是C写的...
于是你决定,在git push前时候要加上一些信息,
能让你知道是谁写了啥
于是乎,git commit出现了并且!!!
不能随意的merge到master上
万一merge了一堆狗屎咋办!!!
必须提一个pull request请求给你
等你审核过后
才能进行merge到master上
-----------------------------------------------------------------------------------------------我是分割线------------------------------------------------------------------------------------------------------------------------
看完上面的描述,相信你对git有了大体的理解,老司机的水平毕竟不是盖的。好的,接下来附上一个链接地址,花30分钟读完全部章节,相信你就完全明白了
http://www.runoob.com/git/git-tutorial.html
- git全方位教程-由具体到抽象-摘自架构师小秘圈和runoob.com
- shell极简教程(二) -转载自架构师小秘圈
- 菜鸟教程 http://www.runoob.com/
- 各种程序员教程:http://www.runoob.com/
- http://www.runoob.com/
- www.runoob.com
- 从菜鸟教程网站(www.runoob.com)抓取所有教程
- jqury(源自runoob.com)
- RUNOOB.COM---SQLITE学习网站
- 关于抽象和具体
- JavaScript菜鸟教程学习 http://www.runoob.com/js/js-tutorial.html
- Lua (2)——环境安装(菜鸟教程http://www.runoob.com/)
- 抽象类和具体类
- http://www.runoob.com/ 学习网址
- EM算法(具体到抽象)
- COM应用和原理摘自大神
- Git diff (---和+++具体解释)
- 由现实世界到抽象世界
- svn 常用操作命令
- Python之requests的安装
- Atom sync-setting配置问题
- Android中的menu使用
- 在HTML中引入外部文件CSS和JS的方法
- git全方位教程-由具体到抽象-摘自架构师小秘圈和runoob.com
- Frida官方手册
- java 2D图形绘制
- FTP主动模式和被动模式的区别
- 关于springboot热启动
- XML概述
- Laravel搜索的时候分页并携带参数
- Unity性能优化
- 记录前端面试