实用技术 | Github with R:不简明但是很好懂的教程

Introduction

合适的代码管理工具能帮助同学们在编程的时候提升效率。Git是一款被普遍使用的代码软件,它主要的作用是管理我们所保存过的代码和文件。

Git

举一个例子,我们在完成课程作业和论文时,很难一次写完,文件经常被保存为"homework120210425.docx"、"homework120210426.docx"等一系列文件;同时,我们在完成作业时,可能会产生对某一部分进行修改的想法,这个时候还可能有"homework120210425editPart1.docx"、"homework120210425editPart2.docx"等多个版本。这种繁冗的文件管理方式妨碍了我们愉快地进行coding。

Git的第一个功能,在于可以只保存一个“homework1.docx",同时Git会帮助用户保存之前所有的历史修改纪录。当同学们想要回滚到之前的作业版本时,在Git中进行操作即可。这就是Git的版本控制功能。

Git的第二个功能,在于可以只把代码放在一个地方。这里的”一个地方“,指的是用户在一台设备的Git中保存代码并上传到云端后,可以在另一台设备上无缝衔接继续coding,解决了用户在设备中转移的困难。Git的这个功能类似于百度云盘。

Git的第三个功能,在于团队协作。再举一个例子,当同学们分成小组来完成作业时,可以通过Git及Github进行作业的布置,问题的提出以及团队成员之间作业的审核、合并等环节。其中的作业合并功能配合版本控制使用时,团队在协作时可以不用担心错误的作业合并可能导致的作业丢失等问题,使得同学们更加专注于写作业这件事情上。

Github

Github与Git是不太一样的两个工具,GitHub是通过Git进行版本控制的软件源代码托管服务,Git相当于Github的一个内核。同时,Github的界面更加人性化,社交属性更强。

Project

Project,即项目文件,项目文件保存了该项目中环境变量、历史记录、工作路径等信息。Project的妙用在于很好地维护了保持了代码的简洁性。

· Project允许使用相对路径(比如 ./data/cgss2010.dta) ,和绝对路径(比如C:/Users/kropopkin/Documents/quant2/hwk/data/cgss2010.dta)相比,不仅更为美观,而且方便协作。当其他同学使用项目文件打开自己的作业运行代码时,不会因为路径设置而报错。一个小技巧是,./代表本机目录,而../代表返回上一级目录。

·  Project保存了上次退出时用户所保存的环境变量,因此,同学们再次打开Project写作业时不用重新导入数据。

·  如果不建Project而仅使用R script,同时打开多个script时,它们的变量会影响。Rstudio允许同时打开多个Project,并且两个Project之间的历史纪律、环境变量、工作变量互相不影响。相当于容器的作用。

Git的基本命令

Git的常用命令有commit、pull、push、branch、merge、pull request、checkout、cherry-pick等,接下来会对它们进行简单介绍。

  • pull,同步云端数据到本地,建议读者朋友们没事就pull一下。

  • commit,将做好的改动保存,提交到Git。相当于word文档中的Ctrl + S。由于Git会保存所有的修改记录,所以commit命令会形成一个新的记录节点。

  • push,将本地数据的新更改推送到云端。

  • branch,建立一个分支,分支上的修改不会影响到其他分支。

  • merge,将分支内容与另一个分支合并。

  • pull request,这个命名比较令小编迷惑,在小编的理解中,它更像是push request。它的意思是很简单,就是在团队中协作时,在branch中做好修改的小弟对大哥发出询问“我的修改部分能不能merge到主线中?"

  • checkout,即在各个branch中进行跳转

  • cherry-pick,即翻一翻历史纪录,把有用的代码薅到最新版本项目中来使用。

  • fork,在Github中,碰到自己觉得以后会用到的项目时,可以fork一下,这样整个项目就会复制到自己仓库之中。这个功能相当于Steam、Epic的限免游戏“只要我购买了就相当于我通关了”。

对Git感兴趣的同学可以移步https://learngitbranching.js.org/,这是一个学习Git操作的教学游戏。

在Rstudio中搭配使用Github及Project

1. 安装Git

Git的网址为https://git-scm.com/,安装时一路默认狂点下一步就可以了。打开Git,输入:

git config --global user.email '你的Github邮箱'git config --global user.name '你的Github用户名'

2. 注册Github,取得token

进入https://github.com/中进行注册,推荐使用.edu后缀的邮箱,可获得大礼包GitHub Student Developer Pack。注册完成后,点击右上角头像进入setting,操作如图所示。

3. 在Rstudio中配置Git

打开Rstudio,输入以下代码

install.packages(")library(credentials)set_github_pat('刚刚获取的token')

如果提示Token invalid,也可以尝试在R中输入:

library(gitcreds)gitcreds_set()

然后选择Replace these credentials,粘贴token即可。

如果提示找不到Git,可以打开顶栏的tools → global option → Git/SVN。手动指定Git的安装地址。

如果实在是配置不好,也不用灰心,可以通过下文Github Desktop的方式使用Github的功能。

4. 新建Repository,同步Project

打开Github.com,点击右侧create repository,并复制repository的链接。

打开Rstudio,左上角新建Project,并新建Version Control。成功后,右上角会显示Git栏。

5. commit 与 push

(0)

相关推荐