forked from jennybc/happy-git-with-r
-
Notifications
You must be signed in to change notification settings - Fork 0
/
38_workflow-git-commands.Rmd
95 lines (67 loc) · 1.65 KB
/
38_workflow-git-commands.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
# Git commands {#usage-git-cmds}
Here's a start on the various Git commands that have been largely going on under the hood. We've tried to pick workflows that have RStudio doing this for us. But all of this can be done from the command line.
*Unless you use the [GitHub API](https://developer.github.com/v3/), most of the GitHub bits really have to be done from the browser.*
New local git repo from a repo on GitHub:
``` bash
git clone https://github.com/jennybc/happy-git-with-r.git
```
Check the remote was cloned successfully:
``` bash
git remote --verbose
```
Stage local changes, commit:
``` bash
git add foo.txt
git commit --message "A commit message"
```
Check on the state of the Git world:
``` bash
git status
git log
git log --oneline
```
Compare versions:
``` bash
git diff
```
Add a remote to existing local repo:
``` bash
git remote add origin https://github.com/jennybc/happy-git-with-r
git remote --verbose
git remote show origin
```
Push local master to GitHub master and have local master track master on GitHub:
``` bash
git push --set-upstream origin master
## shorter form
git push -u origin master
## you only need to set upstream tracking once!
```
Regular push:
``` bash
git push
## the above usually implies (and certainly does in our tutorial)
git push origin master
## git push [remote-name] [branch-name]
```
Pull commits from GitHub:
``` bash
git pull
```
Pull commits and don't let it put you in a merge conflict pickle:
``` bash
git pull --ff-only
```
Fetch commits
``` bash
git fetch
```
Switch to a branch
``` bash
git checkout [branch-name]
```
Checking remote and branch tracking
``` bash
git remote -v
git branch -vv
```