众所周知,一个稍微有点规模的项目,都不可能是一个人单打独斗完成的(能完成的大神别打我),所以,一个高效的项目团队就需要一个NB的工具来进行有效的交流(曾经有人问我企鹅不就可以吗,我竟无言以对),今天就把我学习GitHub这牛叉利器的心路历程记录下来,希望能帮到大家!
首先,介绍一下这两个nx的工具!
GIT:Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
优点:适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。离线工作。
缺点:资料少(起码中文资料很少)。学习周期较长。不符合常规思维。代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
GITHUB:gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
GitHub 使用 git 分布式版本控制系统,而 git 最初是 LinusTorvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
说了怎么多,还是不懂,git和GitHub到底能干啥!通俗的说,比如你正在开发一个项目,一不小心删除了一段代码,然后保存,后面发现没法找回这段代码了,这就傻眼了,但是,如果你用了git,他能帮助我们记录项目中任何的增删改,你随时可以查看操作日志,随时可以恢复到任何一步的版本;当然git再强大,也只能是在本地单打独斗,一旦有了GitHub,那就不一样了,我们可以把多个开发者通过一个GitHub项目链接起来,想象一下,远在他想的同事在GitHub上下载了你提交的版本version1,然后修改提交version2,你把version2下载下来后,git能自动帮你把修改的部分整合到你的项目中,还能告诉你改了哪些内容,然后你得到version3,大家都这样干了,开发起来效率就会高很多。
小编是通过菜鸟教程一步步学习git到GitHub的,相信会对你有帮助,下面我就把学习过程中遇到的一些坎,列出来,供大家参考:
1.下载安装都没有问题
2.安装完成后我们需要学习一些基础的git命令,教程中也有,在这给大家提供一个更详尽的帖子:http://www.cnblogs.com/cspku/articles/Git_cmds.html
3.然后是理解git的工作机制,教程中有
4.现在就可以创建git仓库了。git需要一个文件夹作为仓库,这个文件夹可以是新建的,也可以是你已有的目录,在用git init命令时不用考虑文件夹里的文件会不会收到影响,放心吧,不会的。所以你可以放心大胆的在任何目录下执行这个命令,建立仓库。
5.仓库建立好之后,就可以跟着教程试一试那些简单的git 命令。我们学习git是想要为以后项目开发服务的,所以只要我们在项目的文件夹中git init,我们就相当远把自己的项目装进了这个新建的仓库里面,以后我们针对项目的各种操作,git都会帮我们详细的记录下来。
6.难点在于远程仓库GitHub的使用,我在下面这个地方遇到小的阻碍:
按照教程,当我执行到这一步,发现找不到.ssh文件夹,搞的我以为自己之前的操作错了,后来才在下图中的地方找到这个文件夹,所以你到这个地方注意哈!
还有需要注意的是, id_rsa.pub文件里的key很长,看起来好像还是换了行的,当你用记事本打开的时候不用管它,直接Ctrl+A,Ctrl+C,Ctrl+V,搞定。
还有,上图中标箭头的只是教程中自己起的名字,看着像命令,当你操作时一定要换成自己的仓库名和用户名。
等你到这一步的时候,相信你已经有小小的成就感了,这一步可以暂时不用管,因为你除非你是公司的项目或者什么高大上的涉密项目,这一步暂时还用不上!