作者:Wenhu
博客:http://bioinfostar.com/
本讲第一部分,介绍git的“足够你用”命令;本讲为第二部分,介绍github的主要用途,包括版本管理、分枝管理等,以及推荐的在Rstudio中使用git的教程,部分内容改编自廖雪峰的《Git教程》。欢迎转载,但请注明出处!
源代码:https://github.com/mckf111/mckf111.github.io/tree/master/_posts
这可绝对是个好东西啊,日前刚被微软收购,不知前景如何!
前面提到git的两大特点,版本控制相信大家看到这里,已经了然于胸了,而想要一窥分布式的威力,就不得不提到github这个“交友网站”啦!
分布式其实就是多个电脑上的版本库同时更新,都是最新版本,当有一处电脑上的版本库有改动时,通过推送,其他电脑都能接收到,这为下面讲的多人协作分支管理提供了基础,而github相当于一个始终处于开机状态的电脑,其他所有电脑可随时联网与它保持更新,获得最新版本。分布式与集中式有本质上的区别,具体解释请参考廖雪峰:集中式VS分布式。
https://github.com/ 这个毫无难点,不用多说。
本地的git仓库和github上的仓库是通过SSH(secure shell)加密传输的,也就是你每次的版本同步更新,都要在验证密码正确的前提下进行:
把email地址换成你自己常用的,执行完上述命令后,你主目录(~)中就会有文件夹出现,里面包含两个文件:和,前面是私钥,不可泄露,而后面的是公钥(public),这是要提交给github的。
进入目录,提取公钥内容。
将屏幕上的内容全部复制下来,再来到你的github主页: - - - 取个title,”my_computer”之类的,然后把刚才复制的内容全部粘贴到下面的框框中 - ,至此,你的电脑本地仓库就和github配置好了安全连接。
github最重要的作用就是为你的本地项目提供一个云端同步更新的仓库,让你走到哪都能随意撸代码,无需担心版本问题,同时,如果有多人参与你的项目,你的合作者也能随时看到最新的版本状态,和你电脑上的版本库保持同步更新。
在你的github主页右上角可以看到一个,点开后,点击,进入创建远程库的初始界面,在里填上你的仓库名称,本例中应填上,其他的不用管,直接点击最下方的绿色按钮。
当然,你可以使用网页中的按扭来添加代码和文件,但我们更多的是在本地进行编辑和添加操作。英语演讲开场白命令行模式编辑一个仓库,注意修改github的用户名为自己帐号名称(非邮箱地址,每个github有一个用户名作为唯一地址,全球唯一),如下文中的:
此处将用户名赋与变量,只需修改一次即可
如果你的同事对版本做了修改,并且推送到了远程库,但你还没有更新,或者对github上别人的开源项目感兴趣,想弄到本地来研究研究,这时你就需要把远程库先给克隆到本地上来。
也是一个命令全搞定:
其中,你所需要修改的就是:改为你想克隆的仓库的创建者,改为仓库名称,其他不用动,注意,其中的后面没有空格,不可习惯性的加上一个,否则报错!如果报错了,出了问题,请学会google和求助stackoverflow,这是必备技能,meta-knowledge!
我们要关注的是第二条:”…or push an existing repository from the command line”,把提示的命令输入到git bash中 (注意,此时你的工作目录必须在中):
以后,在你想要把本地的推送到远程库时,只需记住这一个命令:,其中是远程库的名字,倒装句而则是主分支的名字。
这时,你再刷新一下github的页面,你会发现库中的内容和你本地一模一样了。
注意:第一次push的时候,会有警告出现,输入yes即可,不用害怕~
之前我们所有的操作都是在主分支中进行,但我们会经常有个新想法,想试验一下,写了几个文件,但又不想影响主分支,或者影响同伴的工作,怎么办?最好的就是,从上叉出一条次分支,与互不干扰,等到自己的开发成熟了,并且与同伴沟通好了,再把次分支合并到主分支上。这是git的最大特色了!
在本例中,我们创建一个开发分支elopment:
我们再看下目前有哪些分支:
结果提示我们目前有和两个分支,前面带号的表明当前所处分支。
我们换到分支去看看:
切换成功,现在你可以在分支上做各种改动,但都不会丝毫影响到分支。
当你对新开发的特性很满意之后,想要把的改动全部合并到,可以用命令,首先要先切换到分支:
如果你不想要分支了:
有木有觉得前面的指令打起来会经常敲错字母,比如我老是将打成,能否有简化一点的办法呢?必须有!别名(alias)!
输入上面指令之后,你每次就不用输入了,只需即可,爽不爽?那就继续多改几个吧:
当然,你也可以指定你喜欢的别名,不一定要和我一样。最后,再来个猛的,从廖老师那里学到的:
你可以输入试试看,好了,git的基本常用指令和github的简要介绍就到这里了,however下面稍微提一下在R中如何玩git。
以上的知识,可以让你轻松管理你编辑的R代码,备份,版本管理。但Rstudio集成使用会有更直观的查看版本代码的修改。
相信很多Rer都是用Rstudio来写R和运行R的,Rstudio本身也集成了git的功能,并且做成了图形化界面,方便一些不习惯git bash的朋友,点点鼠标,就能完成版本控制!具体的用法,由于篇幅所限,就不展开说了,有兴趣的同学可以参考R packages: Git and Github http://r-pkgs.had.co.nz/git.html ,里面的介绍非常简洁易懂,半小时就能搞定,自主学习吧~
原文:https://www.cnblogs.com/zhaolide/p/9946877.html