-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGitHub.Rmd
237 lines (136 loc) · 7.45 KB
/
GitHub.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
---
title: "GitHub"
author: "Kulas Renata Casey Noel"
date: "6/14/2020"
output:
xaringan::moon_reader:
seal: false
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
![](https://media.giphy.com/media/EXHHMS9caoxAA/giphy.gif)
## Using GitHub through R Studio
Summer 2020 Eagle I.O Team:
+ [`r icon::fa_linkedin(colour = "cornflowerblue")`](https://www.linkedin.com/in/renatagppr/) Renata Garcia Prieto Palacios Roji
+ [`r icon::fa_linkedin(colour = "cornflowerblue")`](https://www.linkedin.com/in/casey-osorio-duffoo/) Casey Osorio-Duffoo
+ [`r icon::fa_linkedin(colour = "cornflowerblue")`](https://www.linkedin.com/in/noel-d-souza-60101a125/) Noel D'Souza
---
## Topics covered
1. How (and why) to integrate GitHub and R Studio
2. Connecting individual accounts to shared projects
3. Branches and forks (and how to use them)
4. How to ask for a task to be completed
5. How to approve tasks
![](https://cdn.pixabay.com/photo/2015/07/31/11/45/library-869061_1280.jpg)
---
## Why you want to do this
Using a version control platform (such as [GitHub](https://www.github.com)) facilitates collaboration on projects from multiple people (while restricting the number of *versions* of the collaborative material). RStudio integrates really easily with GitHub, so it turns out to be a very useful way to share scripts and work on projects such as [this one!](https://github.com/jtkulas/GitHub)
![](https://cdn.pixabay.com/photo/2017/02/20/14/18/business-2082639_1280.jpg)
---
## How to integrate RStudio and GitHub
You need to install "Git" onto your computer before using GitHub through RStudio.
This [site](https://happygitwithr.com/install-git.html) and the next few slides walk you through the setup.
![](https://cdn.pixabay.com/photo/2016/09/07/16/02/alpaca-1651897__480.jpg)
---
## Installing Git
Git is platform tool, which helps connect the website [GitHub](https://github.com/), and R studio. To install Git on you computer go to website <https://git-scm.com/downloads>. Here is what the website should look like:
![Git Page](Image/Gitpage.png){width=50%}
---
## What's a "Shell"?
You may be asked to operate from within a "shell" (you don't need to do so, but the recommended resource does ask you to use a shell). A shell is an access point to your computer that operates somewhere behind your operating system (for example, Windows). You can access shells outside of RStudio, but if you'd like to access a shell from *within* RStudio, you can also do so - the "Terminal" tab within RStudio is actually a "shell":
![](Shell.png)
---
## Tutorials
.pull-left[
If you're stuck, there are also `r icon::fa_youtube(colour = "red")` tutorials located [here](https://youtu.be/lXwH2R4n3RQ) and [here](https://www.youtube.com/watch?v=Pg8LeOfvQME)
]
.pull-right[
![](https://cdn.pixabay.com/photo/2020/04/27/21/26/girl-5101875_1280.jpg)
]
---
## Part 1: Connect Git to R
.pull-right[
- Go to Tools in RStudio; it is between Profile and Help.
- Then, click on Global Options
- Next, click on Git/SVN
]
.pull-left[
![](Image/Git SVN.png)
]
---
## Part 2: Connect Git To R
![](Image/SVN 2.jpg){width=35%}
- On a windows computer, you go to "this PC"
- Click on "Windowns (C:)"
- Click on "Program Files Folder"
- Click on "Git Folder"
- Click on "bin folder"
- Click on "git.exe"
You are now connect to Github with Rstudio.
---
## Example of how to use it.
- You will go to New Project.
- Then, you go to verison control, and click on Git.
- Now, you want go to Github, and click on code, then highlight the link. Like below:
![](Image/Connect.png){width=65%}
- Paste it in to repo
![](Image/Repo.png){width=45%}
---
## Problem Solving
[This error](https://codewithhugo.com/fix-git-failed-to-push-updates-were-rejected/) was very common, so with the current presentation, we had to bypass it via this command (in the R Studio `terminal` pane)
![](Image/hardboot.png)
---
## Options
You can set up notifications via your *global* options (associated with your account - not specific to any one repository):
![Notifications](Image/notifications.png)
---
## Connecting individual accounts to shared projects (Step I)
Invite collaborators from within the GitHub repo:
![](invite.png)
...you'll need their GitHub username
---
## Connecting individual accounts to shared projects [(Step II)](https://www.youtube.com/watch?v=YxZ8J2rqhEM)
First access the GitHub repository url, then, within the R Studio interface follow the wizard via: File $\rightarrow$ *New Project* $\rightarrow$ Version Control $\rightarrow$ Git $\rightarrow$ paste the GitHub repository address into the "Repository URL:" window.
Note that you'll also indicate a local (on your computer) location for the files...
![](projectnew.png)
---
## Connecting individual accounts to shared projects (Success)
You now have a "project" that you can access from within R Studio, but is linked to the GitHub files (as well as somewhere locally on your computer)
![](linked.png)
---
## Then what?
You can now work on shared .Rmd files via local editing. A "commit" saves your edits, whereas a "push" sends your saved changes (aka "commits") to the online GitHub repository.
There's a decent YouTube overview [here](https://www.youtube.com/watch?v=KjLycV1IWqc)
![](commit.png)
---
## Using the repository
Especially with shared projects, every time you access the project, make sure to "pull" - this will ensure that you have (locally) the most up-to-date information that is located on the shared repository:
![Pulling](pull.png)
---
## [Forking vs. branching](https://www.pluralsight.com/blog/software-development/the-definitive-guide-to-forks-and-branches-in-git#:~:text=Forking%20creates%20a%20full%20copy,what%20branch%20you%20are%20using.-)
Sounds like forks are different paths that a project may take (e.g., point of divergence) toward a different end-goal, whereas branches are shorter-term (typically) "construction zones" where edits can be temporarily held before being integrated into the master branch.
![](https://www.pluralsight.com/content/pluralsight/en/blog/software-development/the/the-definitive-guide-to-forks-and-branches-in-git/jcr:content/main/image/image-res.img.9fc1f77b-d4c2-4269-9cda-d7fb7705504e.jpg)
---
## Defining a new branch
Best practice seems to entail creating a branch within which proposed edits can be made and reviewed prior to "pulling" these changes to the master branch (the master is where the initial files were placed, but also where the final product will be located).
You can create a new GitHub branch from within RStudio via the `New Branch` option on the `Git` tab of RStudio's "Environment/History" panel:
![](branch.png)
---
## Lingering questions...
What are all of these files? (they keep multiplying)
![](whatdis.PNG)
Heya
---
## Tasks for next meeting
+ figure out push and pull
+ how to request a change
+ how to stage
---
## Notifications
In order to recieve notification that a push has been made to a repository that you own, navigate to the repository, then indicate up to 2 e-mails that you would like to "sign-up" for...
![](notification.png)
---
## Notifications (II)
If you wish to recieve notifications from a repository that you collaborate on (but do not "own"), you can select to watch that repository:
![](notification2.png)