Git 和 GitHub简易入门

帮助新手快速了解github,使用git进行简单的操作。

Posted by Bruce Zhao on February 10, 2016

Estimated reading time: 21 minutes. {Git} [Git]

目录

{: .no_toc}

开始

拖延症与强迫症严重一直拖到了今天2月23号才开始写。这一段时间我也明白了博客最重要的是keep blogging,所以 想到什么就写什么,没有什么东西一次就能写的完美。这次我准备简单介绍一下当前非常火的代码托管与社会协作开发平台–github 和版本控制系统–git

为什么推荐git&github?

你所知道的几乎所有很火的开源软件都能在github上面找到源代码。对于使用R软件的,你会发现谢益辉的开发的R包都在github上面,还有Hadley Wickham一个改变了R的人 的全部R包都在他的github主页上面。Github上面不仅有这些大神级的人物存在,也有不少小牛们,今天看到了一个非常炫的可视化主页,大家点开看肯定会被astonished的,网址在这里.

Github上面还有各种当下最流行是算法包,比如DMLC 里的xgboost 打破kaggle竞赛Python垄断的局面; mxnet基于GPU的深度学习算法,一个例子 详细了解请看这篇cos访谈:陈天奇

总的来说github就是一个巨大的宝库,去上面看看能让我们能紧跟时代潮流,通过查看源代码以及贡献代码(pull request)来实现学习与提高。这么好的东西,良心小赵会私藏吗?当然会无私的与你们分享。

Git是个一个优秀的版本控制系统,开源中国给出八大理由使用Git.相比于其他的版本控制系统Git的优势有人总结过,我当然没有人家写的好,所有就贴上链接,供大家参考。

简单入门

协作与进步

小赵第一次注册Github是2014年的暑假,没错,那个暑假也就是我考研的暑假,大学的最后一个暑假 😭 . 这个也是我在考研的时候弄的杂七杂八的事情之一,当时对Github完全没有概念,懵逼的状态。一直到了2015年9月份看了几篇写博客的各种好处的软文,才开始用起了这个账户。想知道如何用Github Pages & Jekyll搭建个人博客请自行搜索这个方面的文章。小赵到现在也是用了大半年了,算是基本入门了。我的主页在这里:https://github.com/BruceZhaoR

Github上面有一个organisation,可以进行团队开发与协作,这也是我萌发建立R共享学习社区的初衷。毕竟一个人的精力是有限的,多人合作才能发挥巨大作用。只需要加入这个组织,然后把自己学习的笔记、心得什么的以markdown的形式提交到上面去,后来人看到了这些无疑是巨大的帮助而且省时省力。当然也欢迎大家投稿(txt,word,markdown,Rmarkdown,html…),我会将其挂到学习社区的主页博客上面,这样你的文章不仅可以作为自己的备忘(等你哪天忘记了就可以到网上来看看自己当初是怎么做的),而且还能帮助其他人。

拥有一个Github账号

前面说了这么多,相信大家已经对Github有了初步的了解。接下来你只需要用你的常用邮箱注册一个Github账号就可以开始了。网址在这里:https://github.com .

几点说明:

创建新的repository的时候,一般会要你选择是否要README和license,我一般都选。License的区别看这里. GitHub公共(public)的仓库是免费的,private仓库是收费的,反正目前我们也用不到private的仓库。最后你需要点击右上角你的头像->settings,来进行一些基本的设置。首先是你的profile,然后是通知设置,建议全部勾选;关于SSH Keys下面就要说到;security里面有一个两步验证,感觉目前还是用不到的。

至此,你已经拥有了Github账号了,你可以去这里explore流行的项目,或者在这里来看趋势,最近流行什么项目;当然不能少了R相关的资料,点击查看github上面流行的R包.

简单提高

Git安装

Github最近添加了上传文件的功能,至此方便了不少不会git的用户。但是为了发挥Github的优势,还是需要去用git的。关于git网上有很多的快速教程命令,这里推荐官方的教程Git Pro v2.0-zh,可以系统了解git及其基本特性。下载就去官方网站http://git-scm.com/downloads 默认安装就行了(选第一个->下一步就行了)。

安装完成后,右键你会发现多了两个选项,git bash here和git GUI here。现在就可以使用git了。git是可以离线使用的,等你有网了,就可以push到Github上面,实现同步。

关于git教程 随便搜一搜就有的,这里墙裂推荐这个网址1,网址2.再就是:看日记学git廖雪峰git教程

小赵告诉你,新手其实只需会git的“三板斧”足矣。

等你有网了,需要同步了,你只需要 git push,就可以将本地文件同步到了Github上面了.Github上面的公开的项目任何人都是可以下载的,为了确保你的repository只能由你来管理,需要在自己的电脑里面设置ssh key,让Git与Github之间的连接起来,下面就要讲到SSH Key的生成与添加。

SSH Keys

Github上面有一篇官方教程,虽然是全英文的,但是不影响使用,打开Git,照着上面敲一敲代码就ok了。这里小赵总结一下:

1. $ ssh-keygen -t rsa -C "你注册用的邮箱"
2. 一路`Enter`下去
3. $ eval $(ssh-agent -s) #确认ssh-agent可用
4. $ ssh-add ~/.ssh/id_rsa #添加到ssh-agent
5. $ clip < ~/.ssh/id_rsa.pub #复制到粘贴板

接下来需要去这里,按照步骤将ssh key添加到github账户。添加完成后,需要测试一下是否连接成功:ssh -T git@github.com .顺利的话就将会看到这样的一句话:

Hi 你的用户名! You’ve successfully authenticated, but GitHub does not provide shell access.

一个小例子

弄到了这一步也是不容易,下面简单介绍一下git的使用方法。现假设你在github上面已经建立了hello-world这个repository,里面有一个README和License文件。在一个文件夹里面,右键git bash here,然后输入下面的代码:

# 全局设置
$ git config --global user.name "username"
$ git config --global user.email "user email"
# github网页端同步到本地
$ git clone git@github.com:你的用户名/hello-world.git 
$ cd hello-world

这个时候你可以打开hello-world文件夹,然后打开README,用txt打开。这里小赵建议是去下个notepad++ 来打开。然后你可以随便写点上面东西。这个是markdown的格式,关于markdown基本语法看这里&FurtherReading。修改后,保存然后去git里面输入:

$ git status #查看状态
$ git add .  #暂存文件
$ git status
$ git commit -m "update README" #commit以后就可以提交了
$ git push # 提交到github

这里就简单写一个例子,更多的请见上面提到的教程。

总结

看一遍,再操作一遍应该就能掌握基本的使用。然后教程刷一遍,就算是入门了。下篇小赵将总结git常用的操作。

小赵领进门,修行靠个人。

希望你能加入小赵的学习社区,发挥协作的力量,共同进步。http://bzrlc.github.io