作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法[2] 。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。
GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私
有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
是的,我们正是这么计划的。通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
在GitHub,用户可以十分轻易地找到海量的开源代码。【以上摘自百度百科】
这里介绍的github的客户端的使用。
首先下载github的客户端,客户端分为GUI和Shell两种,以前的客户端功能强大但个人感觉界面不太喜欢,倒不如直接使用eclipse下的git插件。不过现在的客户端相当漂亮而且同样功能更强大,于是开始从eclipse转向客户端了。
下载完成后双击运行,会检测所需的环境支持,若不存在会自动下载。安装很简单,默认下一步即可。
安装完成桌面出现如下图标
双击github,会提示输入用户名密码,连接后进入主界面,如下:
然后配置自己的git仓库地址(需要在github官网创建仓促,然后复制地址),点击右上角齿轮状图标,选择Repository Settings,在左侧找到Remote,输入地址:
然后点击左上角加号,create本地仓库地址,
若要配合eclipse,需要注意的是,工作空间最好不要和git仓库在同级目录,而应该eclipse的工作空间包含git仓库,结构应该如下:
----workspace
---------git
--------------myproject
说明:这种方式比较适合git上导出的项目,如果是自己的项目需要在eclipse中建立后手动转到git文件夹下,然后在eclipse中重新导入。为什么要这么费劲呢,那是因为eclipse的工作空间下会自动生成.metadata文件夹,这是个无底洞,项目越多文件越大,而且还不是必要的文件。
然后来试一下提交和更新,在git仓库下建立一个文件README.md,使用记事本打开,写上几个字,然后打开github客户端,这时会在中间部分发现如下界面,
在最下方输入提交信息,然后点击Commit to master ,这时是还没有提交到github远程仓库的,在右上角找到Sync,
点击即可更新到远程仓库。这里还有一种方式是在左侧找到仓库名称右键选择Shell,在这里输入如下命令
git push
git更新很简单,在打开客户端的时候自动会更新:
本地无变化,远程有更新,直接覆盖。
本地变化,远程无变化,不处理。
本地变化,远程变化,提示冲突&不处理。
说下冲突吧,当冲突时出现如下界面:
这时候直接点ok不用管,先把自己的提交,提交完成后,再点击Sync,出现如下界面:
这个是说要先解决冲突,才能提交。关掉它发现中间部分提示有一个change,点开他,发现git把最新版本和我本地的合并了:
直接点击Commit,在unsynced下发现多出一个条目:
这时候可以点击Sync了,点击一下,同步成功!
找到原文件发现里面加了好多东西,
@@ -1,12 +1,7 @@ # base 基本工具 提供诸如缓存、string、date等工具</br> <<<<<<< HEAD 闲杂项目,学习过程项目, 若有不对,请谅解 感谢您的支持! ======= 闲杂项目,学习过程项目,</br> 若有不对,请谅解</br> 感谢您的支持!</br> 如有问题可以联系我 >>>>>>> origin/master
手动把自己的和远程合并一下,再执行提交步骤并更新到远程,至此完成了冲突的解决。
对于本文如果您有更好的方法,请回复我,或给我发邮件[email protected],感谢您的支持!