写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经非常详细了,但是。咳咳,太长了,我就稍微简单点的来概括,其实Git在MAC和Ubuntu上的体验是最好的,不过搞Android开发的我相信绝大多数人还是用windows吧,当然不排除个例
廖雪峰教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
我们为什么用Git?
用前辈的概括是这样的:http://blog.csdn.net/airk000/article/details/38965077
分布式版本控制系统。2005 - 至今,创造者:Linus Torvalds。特点:快速、非线性、分支。
- 1.强大
Git在开发伊始的目标就是管理Linux内核。目前为止,使用最久、最经典的Linux kernel v2.6版本的不完全统计代码量是592万行,如果这样的一个工程Git都可以信手拈来的话,除了强大我们还能说什么呢?
- 2.本地
Git作为版本控制系统,在其领域并非唯一,同样盛行的还有SVN、CVS等版本控制系统。但不同与Git的是,这两者都是集中式版本控制系统。所谓集中式,就是在协作开发过程中,对代码的修订保存操作必须经由代码托管服务器,也就是必须通过网络(即使是局域网)。也就是说,如果开发者对代码进行了很大量级的修改,也只能等到有网络后再做保存提交工作,这样就导致了代码提交历史混乱,不方便维护与调试。而Git作为分布式版本控制系统,拥有颠覆传统的特性,就是本地化。所谓本地化,即开发进度可以在没有网络的情况下进行保存、修改,使提交历史清晰而又有逻辑。
- 3.分支
Git在版本控制中引入了分支的概念。传统系统中,项目的开发线是单一、单调的,而项目的需求通常来讲很有可能出现平行情况,如多渠道发布、不同特性版本等,这样的需求在单一开发线中虽说仍然可以满足,但是总会带来一次又一次的重复工作,甚至无用功。而通过引入分支的概念,Git可以避免这些情况,如一个项目可以轻松的划分为开发分支(线)、发布分支(线),在开发分支中测试稳定的功能、成功修复的BUG可以合并至发布分支,而发布出去的版本又不会包含尚未稳定的开发中功能。多渠道发布,可以给每一个渠道配置一个分支,只是各自的某些配置文件不同,主要的功能、问题修复等进度可以轻松跟进。
- 4.开源
Github、Bitbucket等国际知名代码托管服务商均使用Git作为管控系统,在国内,如CSDN、OSChina等IT名站也纷纷推出类似服务。为什么?这就是开源的力量。Git作为较传统版本控制系统的又一不同点——分布式,即人人都是托管商,人人都是服务器,人人都是工作站。传统控制系统,代码归托管服务器集中管理,任何单位对代码的克隆、修改操作都上报至一处,可扩散性不强,并不能很好的迎合开源项目所需要的互动性。而Git,可以说是一次克隆,终生受益。每一个克隆过Git仓储的单位都可以视为一个托管服务器,即可以将完整仓储提供给其他单位,大大提升了项目的扩散性,同时也提升了项目的安全指数,即使最初的项目托管服务器发生故障,任意克隆过该仓储的单位都可以通过简单配置充当新的托管服务器。
- 5.潮流
>如果你还没有在Github上建立过一个项目,那么你已经落伍了,赶紧利用下班回家看电视的时间恶补一下吧。Git以其灵活、快速、本地化以及独有的分支管控概念迅速征服了广大开发者,Android、Eclipse、Perl、PHP、GNOME等等知名项目都是使用Git进行管理,顺应潮流,拥抱新生,就一定能够获得全新的体验!
一.Git简介
Git是用于Linux内核开发的版本控制工具,和CVS,SVN一类的集中式版本控制工具不同,他采用的是分布式办本科的做法,Linux之父写的能不牛嘛..,Git不需要服务器端软件,就可以运行版本控制,使得源代码的发布和交流及其的方便,而且速度也快,杠杠滴!主要我还是觉得他因为是本地,所以可能速度快点
二.安装
1.msysgit:模拟Linux,只提供命令行操作
下载地址:https://git-for-windows.github.io/
![fcc2aed579ad17f3d7de4d63816df121.png](https://i-blog.csdnimg.cn/blog_migrate/f4092c1162bdc74862b99a48cdb5dce3.jpeg)
安装
直接一直下一步就OK了
![fb97c8169539353ec6da65e9e3bccb46.png](https://i-blog.csdnimg.cn/blog_migrate/4131a1963d7a7a8fc7f8f8adde2f5c46.jpeg)
2.TortoiseGIT:开源客户端,GUI图形化界面,它基于msysgit
下载地址:https://download.tortoisegit.org/
安装
这个也是一样的,下一步就可以
![2a2bdb8b9ae10a64214cc87a977755e7.png](https://i-blog.csdnimg.cn/blog_migrate/84d466d155409af2aefcfba1060b995c.jpeg)
好的,现在我们在桌面上点击右键就可以看到
![b894330acdbd200b688c5290163af5f9.png](https://i-blog.csdnimg.cn/blog_migrate/c8b0a5ddcba69f98320972896d07123b.jpeg)
说明我们安装成功了
三.Git Create repository
D:MyGit 我们在D盘下创建一个文件夹MyGit
然后我们右键,有一个Git Create repository here(在这里创建一个Git的仓库)
![ab74d4a5307c5b4a0ffd383a1b432dc5.png](https://i-blog.csdnimg.cn/blog_migrate/77f7c5f43ce93a8f117ad29a8491f3cc.jpeg)
我们点击创建,会弹出提示,我们点确定就可以了
![7c44d0014a8b0043a0bf8be4cddcd96b.png](https://i-blog.csdnimg.cn/blog_migrate/ff44136d6743fce43124026c2251e8b6.jpeg)
然后你就会发现,目录下多了个文件夹(默认是隐藏的,需要你打开可见性)
![5e70de9acade48c47baaa577aaf13123.png](https://i-blog.csdnimg.cn/blog_migrate/ddec80177e4f44c950914b5604b708cd.jpeg)
我们现在来新建一个Test.txt,里面随便写点什么东西,然后上传上去,你会发现,其实和SVN很像
![95265c72d98e4e538d5949989fefeb98.png](https://i-blog.csdnimg.cn/blog_migrate/2b92cd69a5f070ef770ae9f6f3bf97a8.jpeg)
你右键提交会有一个Git Commit ->"master"(主开发库)
但是正当你点击的时候报了一个错误
![476b134faed55a61d5f401725eddf767.png](https://i-blog.csdnimg.cn/blog_migrate/75d4a41eafc142cfa45ba283822750ed.jpeg)
意思是你必须在提交的时候有用户名和email,你想现在填写吗?肯定点击yes
![e6ed6ad3e63e436d156ff658e8919b79.png](https://i-blog.csdnimg.cn/blog_migrate/c686607e334cff0a85532ee16a31efdf.jpeg)
这里又说什么我们不管,直接点击确定,然后就会出现一些个提示,你填上资料就可以了,然后点确定就可以提交了
![c30952e6dfc815a93685967ea5f9a923.png](https://i-blog.csdnimg.cn/blog_migrate/d2c5940a6363d08d19615041ac24a1cf.jpeg)
这里和SVN的不同之处在于他必须要你写Message,这是个好习惯,更新日志可不能少
![f9e6f5593686e05ad40137e34971d820.png](https://i-blog.csdnimg.cn/blog_migrate/b4a82b0860acea88cd0014b537a5de5c.jpeg)
好了,提交成功
四.Create GitHub repository
官网:https://github.com/
这才是重头戏,我们要成为大牛之前,还是尽量写一些牛X一点的开源项目,不管是找工作也好,自我提升也罢,都是非常有必要的,拿我们就开始吧!
我们先进去官网,然后我们点击 +New repository(新建一个仓库)
![471de3f65c01e48f67a9be829a857bfc.png](https://i-blog.csdnimg.cn/blog_migrate/93d6b6788c072fa52fd15cc3345976c1.jpeg)
然后就开始填写相关的信息了
![63141bda3777fd97dc34f7fb299f892a.png](https://i-blog.csdnimg.cn/blog_migrate/ee37e090c4c2b6ff68a13849af37d2ba.jpeg)
创建完成之后是这个样子的
![76d5e25b6f57ea4b66ca139784e027a2.png](https://i-blog.csdnimg.cn/blog_migrate/a8fe10834fb1e408c19e35316ca81318.jpeg)
>其实我们要用到的还不是只有一个链接:https://github.com/LiuGuiLinAndroid/Android-Developer-Book.git
![c44760198ad70b38ed44dfc5839ed4bd.png](https://i-blog.csdnimg.cn/blog_migrate/fa649163d336cfb3641efcddd6015ecc.jpeg)
我们在本地创建一个文件夹,然后右击Git Clone
![f4e144ccb781ef1a64a7db1f38d23f7d.png](https://i-blog.csdnimg.cn/blog_migrate/b99d50f6adc6498670e8c832262ff8eb.jpeg)
点击
![6f7238c0121ecacd352a542f01cf662c.png](https://i-blog.csdnimg.cn/blog_migrate/16e41804b0ed812dfbdbe41bc20c805e.jpeg)
>这个地址就是我们GitHub上的地址
![2f76aee9e656f915e6e4b3ee2779954b.png](https://i-blog.csdnimg.cn/blog_migrate/b681e479cf961eedba93fe47ce1058a8.jpeg)
我们把项目给Clone下来了
![52ac593b85e3580932e2cf7dc81882b6.png](https://i-blog.csdnimg.cn/blog_migrate/0854f87d1138e74542ee2e27c8a3ea5b.jpeg)
好了,我们现在可以放东西了,然后提交,一切跟刚才一样,但是这个时候提交的依然是在本地,你的github上并没有刷新,我们实如何把他上传到github上呢?
其实也很简单,我们上传到本地之后再次点击右键TortoiseGit->Push(推送)
![b7469c8ea01eac5480c253c12fe206b0.png](https://i-blog.csdnimg.cn/blog_migrate/b2caf8b5532ded7c23f016307b9e279d.jpeg)
我们可以把他推送到github上
![77e51a0b424823a3eec38cd5a92ab94a.png](https://i-blog.csdnimg.cn/blog_migrate/d4e63e0b0af388c27c9d6993a8884208.jpeg)
但是这里上传的是主仓库,所以需要填写你的账号密码
![6985785c7d03a83290075eafa93a9a10.png](https://i-blog.csdnimg.cn/blog_migrate/fa8c268e55d9cf3cdd37ff2d8cda4a4e.jpeg)
好的,推动完成,我们现在来看看GitHub上是什么样的吧!!!
![422503e2ad2621dfb60ebb53aa4929e3.png](https://i-blog.csdnimg.cn/blog_migrate/cd1d95f948b3f7cd75ed0c44e3b36a22.jpeg)
现在你的GitHub上就有东西了,我们的教程也OK了,当然,你会说,还有补丁,分支什么的没讲,其实当你入门之后在,这些都是自然而然的事情了,大把的教程,本篇只是作为一个入门,让你多Get一项技能罢了,谢啦!