== (Under Construction) Instructions for using git == Online git manual available [[http://git-scm.com/doc|here]]. === Sequence of commands to run for adding a contribution === 1. '''git pull --rebase''' 1. '''git commit -am 'Info message about the contribution' ''' 1. '''git push''' === Summary of most important commands === ||'''git clone user@lipMachine:~auger/git/repositoryName.git''' ||Clones the shared remote repository to the local directory (do only once) || ||'''git log''' ||Info on commits of the local repository || ||'''git status''' ||Info on changes in the local repository || ||'''git add filename''' ||Stages file for next commit || ||'''git commit -m 'Initial project version' ''' ||Commit staged changes (with message summarizing them) || ||'''git push''' ||Merge local changes (current commit) with remote repository || ||'''git pull''' ||Bring and merge remote changes with local repository || ||'''git fetch origin''' ||Bring (without merging) remote changes || === Tutorial === ==== 0. Initialize it ==== On the server do: {{{#!highlight console numbers=disable $ git init --bare }}} Initialize an empty Git repository, but omit the working directory. Shared repositories should always be created with the --bare flag (see discussion below). Conventionally, repositories initialized with the --bare flag end in .git. For example, the bare version of a repository called my-project should be stored in a directory called my-project.git. Don't forget to allow for users to write in the git: {{{#!highlight console numbers=disable $ chmod g+x -R }}} This allows the group to write in the directory Recursively ==== 1. User configuration ==== {{{#!highlight console numbers=disable $ git config --global user.name "Raul Sarmento" $ git config --global user.email raul _at_ lip.pt }}} ==== 2. Clone remote shared repository to local machine ==== {{{#!highlight console numbers=disable $ git clone raul@lnlip01.lip.pt:~auger/git/MARTATree.git Cloning into 'MARTATree'... Password: remote: Counting objects: 12, done. remote: Compressing objects: 100% (12/12), done. remote: Total 12 (delta 4), reused 0 (delta 0) Receiving objects: 100% (12/12), 5.61 KiB, done. Resolving deltas: 100% (4/4), done. }}} ==== 2.1. Go to locally created repository and view commit history ==== {{{#!highlight console numbers=disable $ cd MARTATree/ $ git log Commit: 31d8da610511be991944bfed17f88fd5f4bcb5dc Author: Auger Date: (7 hours ago) 2014-02-05 16:10:58 +0000 Subject: Add flag for dense stations. Removed jump in loop in case of a dense stations. Jump loop if a station does not exhist. Commit: 8cdfe1e2d12a7138146e86cbd8fd8a4e7328d5f1 Author: Auger Date: (9 hours ago) 2014-02-05 14:18:19 +0000 Subject: Added height (geodetic coordinate) to core and stations position. Commit: 0036bd68305ce9563e0ab479735cf8e5c7167b3a Author: Auger Date: (29 hours ago) 2014-02-04 18:18:17 +0000 Subject: Init repository. $ ll total 48 drwxr-xr-x 5 raul 170B 5 Fev 23:34 . drwxr-xr-x 9 raul 306B 5 Fev 23:37 .. drwxr-xr-x 13 raul 442B 5 Fev 23:34 .git -rw-r--r-- 1 raul 18K 5 Fev 23:34 MARTATree.cc -rw-r--r-- 1 raul 3,2K 5 Fev 23:34 MARTATree.h }}} ==== 3. After editing files locally ==== ==== 3.1. Check status ==== {{{#!highlight console numbers=disable $ git status # On branch master # Changes not staged for commit: # (use "git add ..." to update what will be committed) # (use "git checkout -- ..." to discard changes in working directory) # # modified: MARTATree.cc # modified: MARTATree.h # no changes added to commit (use "git add" and/or "git commit -a") }}} ==== 3.2. Stage files ==== {{{#!highlight console numbers=disable $ git add MARTATree.* $ git status # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # # modified: MARTATree.cc # modified: MARTATree.h # }}} ==== 3.3. Commit changes ==== {{{#!highlight console numbers=disable $ git commit -m 'Fixed shower curvature.' [master 11aa0bc] Fixed shower curvature. 2 files changed, 3 insertions(+), 3 deletions(-) $ git status # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # nothing to commit (working directory clean) }}} ==== 4. Push your changes to the remote, and check log ==== {{{#!highlight console numbers=disable $ git push Password: Counting objects: 7, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 373 bytes, done. Total 4 (delta 2), reused 0 (delta 0) To raul@lnlip01.lip.pt:/home/cosmo/auger/git/MARTATree.git 31d8da6..11aa0bc master -> master $ git log Commit: 11aa0bc5a534964dab89d6080f09a5be3313a6f3 Author: Raul Sarmento Date: (65 minutes ago) 2014-02-06 00:01:50 +0000 Subject: Fixed shower curvature. Commit: 31d8da610511be991944bfed17f88fd5f4bcb5dc Author: Auger Date: (9 hours ago) 2014-02-05 16:10:58 +0000 Subject: Add flag for dense stations. Removed jump in loop in case of a dense stations. Jump loop if a station does not exhist. Commit: 8cdfe1e2d12a7138146e86cbd8fd8a4e7328d5f1 Author: Auger Date: (11 hours ago) 2014-02-05 14:18:19 +0000 Subject: Added height (geodetic coordinate) to core and stations position. Commit: 0036bd68305ce9563e0ab479735cf8e5c7167b3a Author: Auger Date: (31 hours ago) 2014-02-04 18:18:17 +0000 Subject: Init repository. }}} ==== 5. Bring and merge remote changes (from a different local repository, not yet updated with the commit performed in point 4. above) ==== {{{#!highlight console numbers=disable $ git pull remote: Counting objects: 7, done. remote: Compressing objects: 100% (4/4), done. remote: Total 4 (delta 2), reused 0 (delta 0) Unpacking objects: 100% (4/4), done. From /home/cosmo/raul/auger_home/git/MARTATree 31d8da6..11aa0bc master -> origin/master Updating 31d8da6..11aa0bc Fast-forward MARTATree.cc | 4 ++-- MARTATree.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) }}}