阿弥陀佛!欢迎来到nu大讲堂!我是唐三藏,英文名SanzangTang。今天我将给您讲解git和R的一些基础知识,以及使用Git+R做项目托管和自动化的背景、优势和一些基本的概念。希望通过我的讲解能够让您对Git和R有个基本的了解。 先熟悉一些您现在所处的环境。您刚刚点击进入的这个页面与普通的页面有所不同,它是一个标准的git仓库页面。git仓库是本课程的主要内容,我们将在后面的章节详细讲解。现在您只需要大致浏览一些页面的布局和主要的内容就可以了。 之所以选择一个git仓库作为本课程的载体,一方面是因为git仓库是我们的主要内容,在一个仓库中学习仓库的知识,更有身临其境的感觉,另一方面,使用仓库来写文章、写教程十分方便,得心应手,也能让您真切体会到git的优雅与强大。 ### 项目仓库 nu是一个项目仓库管理系统,简单的说,仓库就是存储项目文件的单元,一般一个项目对应一个仓库。每个注册用户都可以建立多个自己的仓库。仓库管理系统就是管理这些仓库的软件,负责仓库的建立、删除、修改、迁移、文件显示、版本控制,仓库的安全性、共享特征、项目组成员管理、任务分派、冲突解决等,现代的仓库管理系统还包含项目追踪、工单管理系统,以及一个用于向自己和别人介绍项目重要信息和项目组成员讨论问题的wiki系统。 当前流行的仓库管理系统有著名的Github、GitLab等,一般用于软件开发项目,也有人寄宿科研项目。这些系统功能强大,操作简单,资源丰富,是软件开发人员每天必去的不可或缺的淘宝之地。github上关于科技数据分析的项目很多,很多你想到的和你想不到的想法和分析手段都能在github上找到,因此对于科研人员来说也是必不可少的。 nu是个轻量级的git仓库系统,由开源项目gogs派生而来。它保留了github大部分功能,但运行更快,我们针对科研项目的特点进行了初步的地址,使之更适合于托管科研项目。由于众所周知的原因,国外的部分网站的内容需要通过一个费时的安检系统,对于国内用户来说,有时候会慢的无法容忍。令人费解的是,github竟然也在这个榜单之中。所以我们需要一个位于国内的项目托管系统,以提高访问速度。有条件的话,也可以在您的单位建立一个自己的项目托管系统,这样不仅快,也更安全,至少更放心。 ### 仓库界面 nu界面沿袭了github简单朴素的设计风格。 #### 主菜单(第一行) 上面的第一行是主菜单,包含控制面板、工单管理、合并请求、浏览四个标签页。 ##### 控制面板 进入控制面板页面,会发现页面分为两栏,左边一栏是仓库时间列表,列出了最近的项目创建、推送、修改的事件。右边一栏有三个标签页,分别是项目、组织和镜像标签。项目栏列出您托管的项目和您参与的项目,组织一栏列出您创建的或参与的组织,镜像指的是您把在其他托管系统托管的项目在本系统做了一个几乎相同的克隆,并且在设定的时间间隔与源仓库保持同步。每个标签页的右上角都有一个“+”号,用来添加新的项目、组织或创建新的镜像。 ##### 工单管理 工单,顾名思义是指要做的工作的条子。这个条子上的内容可以是领导分配的任务,也可以是自己计划要做的事。工单在git系统中的名称是issue,是问题的意思,意即项目中遇到的什么问题,需要解决,领导把这个任务分配给某个项目组成员,由他负责解决这个问题。这有点像我们现在流行的所谓问题导向,就是我们传统的提出问题、分析问题、解决问题的思路。系统内置的工单系统除了普通的创建、修改、删除等基本操作之外,还有评论讨论的功能,便于团队成员一起讨论问题,集思广益,提供解决问题的建议。 ##### 合并请求 合并请求是为团队协作设计的。nu采用需要审核的协作模型。团队成员对项目的管理权限有所区别,项目创建者或管理员对拥有项目的完全读写权限。一个项目初始建立时只有一个分支,叫主分支,或叫做master分支,一般有创立者或项目管理员全权负责。项目团队其他成员的工作通过项目分支实现与主分支和其他成员分支的分离。每个成员在自己的分支上工作,比如输入数据、撰写文章、编写书籍中分配给自己的那部分章节,这样可以确保彼此不相互影响,避免内容冲突带来的麻烦(当然,即使有冲突也可以解决,这是git的基本功能)。当你认为工作已经完成,或者需要别人的帮助,你可以在主分支上发起一个合并请求,请求管理员把你的工作合并到主分支。同时,可以在工单系统中对你的工作成果或需要提供的帮助进行讨论。可以看出,这是一个谨慎的工作模型,尽管有些麻烦,但可以保证工作的稳步推进,否则,可能会变得一团糟。 ##### 浏览 在这里可以查看最近的项目列表,或查询你感兴趣的项目。 ##### “+”号菜单和个人设置 主菜单的最右边是“+”和用户下拉菜单,分别用于提价项目和用户账户配置。