-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGitHub.html
341 lines (237 loc) · 11.5 KB
/
GitHub.html
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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
<!DOCTYPE html>
<html lang="" xml:lang="">
<head>
<title>GitHub</title>
<meta charset="utf-8" />
<meta name="author" content="Kulas Renata Casey Noel" />
<link href="GitHub_files/remark-css-0.0.1/default.css" rel="stylesheet" />
<link href="GitHub_files/remark-css-0.0.1/default-fonts.css" rel="stylesheet" />
<link href="GitHub_files/font-awesome-5.3.1/css/fontawesome-all.min.css" rel="stylesheet" />
</head>
<body>
<textarea id="source">
![](https://media.giphy.com/media/EXHHMS9caoxAA/giphy.gif)
## Using GitHub through R Studio
Summer 2020 Eagle I.O Team:
+ [<i class="fab fa-linkedin " style="color:cornflowerblue;"></i>](https://www.linkedin.com/in/renatagppr/) Renata Garcia Prieto Palacios Roji
+ [<i class="fab fa-linkedin " style="color:cornflowerblue;"></i>](https://www.linkedin.com/in/casey-osorio-duffoo/) Casey Osorio-Duffoo
+ [<i class="fab fa-linkedin " style="color:cornflowerblue;"></i>](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 <i class="fab fa-youtube " style="color:red;"></i> 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)
</textarea>
<style data-target="print-only">@media screen {.remark-slide-container{display:block;}.remark-slide-scaler{box-shadow:none;}}</style>
<script src="https://remarkjs.com/downloads/remark-latest.min.js"></script>
<script>var slideshow = remark.create();
if (window.HTMLWidgets) slideshow.on('afterShowSlide', function (slide) {
window.dispatchEvent(new Event('resize'));
});
(function(d) {
var s = d.createElement("style"), r = d.querySelector(".remark-slide-scaler");
if (!r) return;
s.type = "text/css"; s.innerHTML = "@page {size: " + r.style.width + " " + r.style.height +"; }";
d.head.appendChild(s);
})(document);
(function(d) {
var el = d.getElementsByClassName("remark-slides-area");
if (!el) return;
var slide, slides = slideshow.getSlides(), els = el[0].children;
for (var i = 1; i < slides.length; i++) {
slide = slides[i];
if (slide.properties.continued === "true" || slide.properties.count === "false") {
els[i - 1].className += ' has-continuation';
}
}
var s = d.createElement("style");
s.type = "text/css"; s.innerHTML = "@media print { .has-continuation { display: none; } }";
d.head.appendChild(s);
})(document);
// delete the temporary CSS (for displaying all slides initially) when the user
// starts to view slides
(function() {
var deleted = false;
slideshow.on('beforeShowSlide', function(slide) {
if (deleted) return;
var sheets = document.styleSheets, node;
for (var i = 0; i < sheets.length; i++) {
node = sheets[i].ownerNode;
if (node.dataset["target"] !== "print-only") continue;
node.parentNode.removeChild(node);
}
deleted = true;
});
})();
(function() {
"use strict"
// Replace <script> tags in slides area to make them executable
var scripts = document.querySelectorAll(
'.remark-slides-area .remark-slide-container script'
);
if (!scripts.length) return;
for (var i = 0; i < scripts.length; i++) {
var s = document.createElement('script');
var code = document.createTextNode(scripts[i].textContent);
s.appendChild(code);
var scriptAttrs = scripts[i].attributes;
for (var j = 0; j < scriptAttrs.length; j++) {
s.setAttribute(scriptAttrs[j].name, scriptAttrs[j].value);
}
scripts[i].parentElement.replaceChild(s, scripts[i]);
}
})();
(function() {
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
if (/^(https?:)?\/\//.test(links[i].getAttribute('href'))) {
links[i].target = '_blank';
}
}
})();</script>
<script>
slideshow._releaseMath = function(el) {
var i, text, code, codes = el.getElementsByTagName('code');
for (i = 0; i < codes.length;) {
code = codes[i];
if (code.parentNode.tagName !== 'PRE' && code.childElementCount === 0) {
text = code.textContent;
if (/^\\\((.|\s)+\\\)$/.test(text) || /^\\\[(.|\s)+\\\]$/.test(text) ||
/^\$\$(.|\s)+\$\$$/.test(text) ||
/^\\begin\{([^}]+)\}(.|\s)+\\end\{[^}]+\}$/.test(text)) {
code.outerHTML = code.innerHTML; // remove <code></code>
continue;
}
}
i++;
}
};
slideshow._releaseMath(document);
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML';
if (location.protocol !== 'file:' && /^https?:/.test(script.src))
script.src = script.src.replace(/^https?:/, '');
document.getElementsByTagName('head')[0].appendChild(script);
})();
</script>
</body>
</html>