今天我们介绍的内容为如何使用 git 命令行上传项目到 GitHub,其中会涉及到一些关于 R 包发布的简单介绍。其实这篇笔记是因为想要介绍如何将 R 包上传分享给他人使用才有的,而 GitHub 上传项目步骤都是相同的,不管是 R 包还是其他,所以就正好借这个机会,详细介绍一下上传项目到 GitHub 啦!

如需视频讲解,请移步一只小蛮要
待上传

前面我们已经成功开发了自己的 R 包,如果我们希望把它分享给其他人,允许别人也可以利用你的包(福泽天下!!!),那我们可以把它发布出去!一般我们会用到两大平台:CRANGitHub

1 在 CRAN 上发布你的包

我们先来简单介绍一下在 CRAN 上发布你的包!后续再详细介绍在 GitHub 上传好不好!

将包发布在 CRAN 上是比较难的一步,因为在成功发布前要对包进行大量的严格测试。除了通过这些测试,你还需要给出关于包的运行的详尽描述。这些描述将存储在 vignettes 文件夹中,你可在主项目目录中创建该文件夹。
当你已确认你的包在本地模拟测试中运行良好并且正常记录后,你需要进入Build > Build Source Package创建源码包。
在创建完源码包后,你就可以在 CRAN 上提交发布这个包的申请啦!

如果你的包在 CRAN 上成功发布,之后你需要确保不断更新你的包,以修正某些程序错误和/或添加新功能。如果在特定时段内你未对包进行更新,CRAN 就会遗弃你的包哟!

2 在 GitHub 上发布你的包

接下来就是我们今天的重点啦!在 GitHub 上发布你的包!

一般来说,在 GitHub 上发布你的包会相对容易很多。在 GitHub 上发布包最简单的方法是创建一个新的仓库,然后将主文件夹(我们以之前开发的xmypkg包为例)的内容上传至该仓库就完成啦!

我们来看具体流程!

首先你需要在 GitHub 上创建一个新的代码仓库(Repository),你可以登录 GitHub,然后点击”New“按钮来创建新仓库。

进入创建新仓库界面,填写相关信息,点击”Create repository“即可创建成功。

仓库创建成功后,你会进入这个页面。

其实,我们可以看到,这个页面已经告诉我们应该怎么做啦,后面我们就一步一步为大家进行介绍!

  1. 首先打开命令行终端,进入你的 R 包项目的根目录。通过git init把它变成 git 仓库(也可以新建文件夹,把它变成 git 仓库,之后再把你的项目复制到这个文件夹里面)。

  2. 通过git add .将所有文件添加到 git 仓库中,.代表当前目录下的所有文件。如果只想上传某个文件,只需要在git add后加文件名即可,比如上图中的git add README.md

  3. 通过git commit -m "first commit"把项目提交到仓库,引号中可以填写任何你想要使用的提交消息。

  4. 使用命令git branch -M main新建分支。

    大家可能会好奇,我们为什么要新建分支呢?
    其实在使用 git 时,创建新的分支可以帮助我们在 git 项目中实现更好的版本控制、并行开发和团队协作。它提供了更灵活的工作流程,可以提高开发效率,并帮助保持代码库的整洁和稳定。具体好处如下:
    a. 并行开发:通过创建新的分支,我们可以在独立的分支上进行开发工作,而不会影响主分支(通常是master分支)上的稳定代码。这样,我们可以同时处理多个任务、修复错误或尝试新功能,而不会破坏主分支的稳定性。
    b. 版本控制:通过创建新的分支,我们可以轻松管理不同版本的代码。例如,我们可以为每个发布版本创建一个分支,这样我们可以在每个分支上进行相关的修复和调整,同时保留每个版本的代码状态。
    c. 特性开发:创建新的分支可以帮助我们实现特性开发的流程。我们可以为每个特性或功能创建一个独立的分支,在该分支上进行开发和测试。一旦特性开发完成并经过测试,我们就可以将该分支合并到主分支中。
    d. 团队协作:分支在团队协作中发挥着重要作用。团队成员可以在各自的分支上进行工作,并在完成后将其合并到主分支中。这样,每个人都可以独立开发和测试代码,而不会相互干扰。

  5. 在 Github 上创建好 git 仓库之后我们就可以和本地仓库进行关联啦,根据创建好的 git 仓库页面的提示,可以在本地仓库的命令行输入git remote add origin <GitHub 仓库 URL><GitHub 仓库 URL>为你在第 1 步中创建的仓库的URL。比如本文的例子,想要上传开发的xmypkg包,我们就应该输入下面这行命令:

    git remote add origin https://github.com/hzyao/xmypkg.git
    
  6. 最后通过git push -u origin main把本地仓库的项目推送(push)到远程仓库(也就是 Github)上。

    由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需git push origin main就可以啦!

注:

  1. 如果是本地,按照上述步骤直接来就OK啦!但如果你是在服务器上操作 git,就要确保你已经正确地配置了 git 身份验证(用户名和电子邮件地址)才可以顺利上传哟!
  2. 像我们上面介绍的这样上传文件是有大小限制的,如果你想要上传大文件,就需要借助 Git LFS(Large File Storage, 大文件存储),下面的链接中有你想要的!
    Git Large File Storage | Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.

完成上述步骤之后,大家就可以使用安装GitHub上R包的命令安装并使用这个包啦!如下:

# 安装你的包
## 第一种方法
devtools::install_github("username/yourpackage")

## 第二种方法
remotes::install_github("username/yourpackage")

## 还有很多种方法,如果大家需要的话可以告诉我,我也可以专门出一期介绍!

# 加载你的包
library(yourpackage)

# 然后就可以顺利使用啦!

参考资料

  1. 如何使用git命令行上传项目到github_你是太阳暖人心的博客-CSDN博客_git命令上传项目
  2. 如何创建R包并将其发布在 CRAN / GitHub 上–转载 - nkwy2012 - 博客园 (cnblogs.com)
  3. git commit 命令 | 菜鸟教程 (runoob.com)
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐