Rewriting documentation work in progress.
[arvados.git] / doc / user / intro-git.md
1 ---
2 layout: default
3 navsection: userguide
4 title: "Intro: git"
5 navorder: 4
6 ---
7
8 # Intro: git
9
10 Git is a revision control system. There are lots of resources for
11 learning about git (try [Try Git](http://try.git.io) or [Top 10 Git
12 Tutorials for
13 Beginners](http://sixrevisions.com/resources/git-tutorials-beginners/)). Here
14 we just cover the specifics of using git in the Arvados environment.
15
16 > "git is used in arvados for ..."
17
18 ### Find your repository
19
20 _This needs to have a section on creating repositories_
21
22 Go to Workbench → Access → Repositories.
23
24 [https://workbench.{{ site.arvados_api_host }}/repositories](https://workbench.{{ site.arvados_api_host }}/repositories)
25
26 The "push_url" column will contain a string like `git@git.{{ site.arvados_api_host }}:example.git`.
27
28 This url can be used to pull and push commits between your Arvados
29 hosted repository and your VM/workstation.
30
31 ### Make sure your SSH credentials are available
32
33 Git requires you to authenticate with your SSH private key. The best
34 way to make this happen from a VM is to use SSH agent forwarding.
35
36 When you log in to your VM, use the `-A` flag in your `ssh` command,
37 like this:
38
39     ssh -A shell.q
40
41 > The .q is inconsistent with the earlier tutorial which sets up
42 > the .arvados configuration shortcut
43
44 At the shell prompt in the VM, type `ssh-add -l` to display a list of
45 keys that can be used. You should see something like this:
46
47     2048 a7:f0:fb:ad:ba:66:fd:c2:8e:58:49:3b:6b:2a:1f:c3 example@host (RSA)
48
49 ### Clone your repository
50
51 This step copies your Arvados-hosted repository to a new directory on
52 your VM.
53
54 Log in to your VM (using `ssh -A`!) and type:
55
56     git clone git@git.{{ site.arvados_api_host }}:EXAMPLE.git
57
58 (Replace "EXAMPLE" with your own repository's name, or just copy the
59 usage example shown on the Repositories page.)
60
61 > The repositories page on the workbench under "access"
62
63 ### Commit to your repository
64
65 This part works just like any other git tree.
66
67     # (edit foo.txt)
68     git add foo.txt
69     git commit -m "Added section explaining what foo isn't"
70
71 ### Push your commits to Arvados
72
73 From within your source tree, type:
74
75     git push origin master
76