使用 git 命令行上传项目到 GitHub(以 R 包为例)
今天我们介绍的内容为**如何使用 git 命令行上传项目到 GitHub**,其中会涉及到一些关于 R 包发布的简单介绍。其实这篇笔记是因为想要介绍**如何将 R 包上传分享给他人使用**才有的,而 GitHub 上传项目步骤都是相同的,不管是 R 包还是其他,所以就正好借这个机会,详细介绍一下**上传项目到 GitHub** 啦!
专栏这个格式实在是太!!!一言难尽!!!!!哎!
如果大家有兴趣的话,还是去公众号看更舒服!或者等我的视频嘿嘿嘿!!!

前面我们已经成功开发了自己的 R 包,如果我们希望把它分享给其他人,允许别人也可以利用你的包(福泽天下!!!),那我们可以把它发布出去!一般我们会用到两大平台:CRAN 和 GitHub。
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`包,我们就应该输入下面这行命令:
6. 最后通过`git push -u origin main`把本地仓库的项目推送(push)到远程仓库(也就是 Github)上。
由于新建的远程仓库是空的,所以要加上`-u`这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需`git push origin main`就可以啦!
注:
1. 如果是本地,按照上述步骤直接来就OK啦!但如果你是在服务器上操作 git,就要确保你已经正确地配置了 git 身份验证(用户名和电子邮件地址)才可以顺利上传哟!
2. 像我们上面介绍的这样上传文件是有大小限制的,如果你想要上传大文件,就需要借助 Git LFS(Large File Storage, 大文件存储),下面的链接中有你想要的!
完成上述步骤之后,大家就可以使用安装GitHub上R包的命令安装并使用这个包啦!如下:

参考资料
1. https://blog.csdn.net/lxd13699/article/details/122384935
2. https://www.cnblogs.com/nkwy2012/p/9066370.html
3. https://www.runoob.com/git/git-commit.html