Вопрос

How do I create new repository on github using devtools in RStudio? I've tried to:

  1. Create empty repository on github named "MyNewRPackage"
  2. Started new project in RStudio using ssh connection to my git repository
  3. Installed and loaded devtools

Then I thought I will use create("MyNewRPackage") to initialize directory structure and README.md file. But the package skeleton is created as subfolder of my project and I have ~/MyNewRPackage/MyNewRPackage/R. But I need to create package skeleton in the root folder of my github repository.

What is the standard way to start new R package development on github using devtools and RStudio?

Это было полезно?

Решение

Hope this helps someone:

  1. Create empty repository on github (I will use name rpackage in this example)
  2. Create package locally using devtools, create("rpackage") (this will create rpackage folder)
  3. Create new project in RStudio (Create project from: Existing directory) and choose rpackage directory
  4. In RStudio go to Tools/Shell... and type git init
  5. Reopen the project (this will refresh the Git tab)
  6. Start Git/More/Shell and type

    git add *

    git commit -m "first commit"

    git remote add origin git@github.com:[username]/rpackage.git

    git push -u origin master

Then you can refresh repository on github. Now you can close (or even delete) your local project and next time you can start a new project Project/New project/Version Control/Git

Другие советы

You can specify the path to your github repository in create instead of the package name:

create("/path/to/root/of/repository")

Then the normal git commands to add, commit and push to github:

git commit -a -m "initial commit" *
git push

Now there's setup(), which creates the skeleton inside an existing directory. Together with hub, this becomes:

git init NewPackage
cd NewPackage
Rscript -e "devtools::setup()"
hub create
git add .
git commit -m "initial"
git push -u origin HEAD
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top