userJT
userJT

Reputation: 11944

R: RStudio: How to check out an existing branch, modify it and commit back to GitHub (Windows machine)

I have followed every advice on http://r-pkgs.had.co.nz/git.html and on the subsection http://r-pkgs.had.co.nz/git.html#git-branch and I am still getting error.

The steps I need/did (different from what Hadley's page dictates).

  1. grab URL of GitHub repo (e.g, https://github.com/OHDSI/Achilles.git )
  2. create versioned project in RStudio with this URL
  3. set up my global user names for git
  4. select a dev branch here (for example devXYZ)

enter image description here

At this point I got "detached at origin/devXYZ) message. Per instructions in Hadley book - I tried to do fix this using this command

git push --set-upstream origin devXYZ

but it fails. The error is: origin does not appear to be a git repository or src refspec devXYZ does not match any

I tried fixing it with doing this command (may be wrong)

git remote add origin https://github.com/OHDSI/Achilles.git

I am using windows, latest R, latest RStudio, latest git from https://git-scm.com/download/win

EDIT: I also tried making a new branch using the recommended mechanism but it also fails. The goal is to get instructions where there is not git init and the whole process starts with an URL and new project in RStudio.

The desired future steps to work would be 5. modify and commit into the devXYZ branch.

Upvotes: 0

Views: 6545

Answers (2)

userJT
userJT

Reputation: 11944

THIS ONLY APPLIES TO NON-MASTER BRANCHES:

If you are newbie to git - simply don't try to do the git part in R at all.

Instead, use GitHub Desktop or SourceTree.

  1. Point that tool to the desired repo, switch to desired branch
  2. Start RStudio and do any development
  3. Close RStudio and use that external tool to perform any git steps.

FOR MASTER BRANCHES:

integrated RStudio git implementation works great.

Upvotes: 2

FearlessHyena
FearlessHyena

Reputation: 4105

I think I might know what the problem is. You're trying to push directly to the main repo. I'm guessing you're not one of the main contributors for that repo so it won't allow you to create a branch there directly. I'm guessing in that book he's probably using his own repository as an example rather than using an existing one

The reason you're getting that error is because that branch doesn't exist on the remote repo so it can't get the reference to it which is inferred from this src refspec devXYZ does not match any

The preferred workflow is to work on a fork of the main repo (basically its your own personal copy of the main repo that is stored on the server). Even if you end up as a contributor at some point I think this is a good workflow to follow

Here's a good explanation on how use the fork workflow. There's other information on stackoverflow as well

Once you've made updates you'd create what's called a pull request to the original repo (commonly referred to as upstream). This basically is a request to merge your changes from the fork into the main repo. This allows the repo owner to review the changes and decide whether to accept them or make changes

Since you're just going over a tutorial I'd say use your fork as the origin wherever its used in the book for now

Upvotes: 1

Related Questions