(Under Construction) Instructions for using git
Online git manual available here.
Sequence of commands to run for adding a contribution
git pull --rebase
git commit -am 'Info message about the contribution'
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:
$ git init --bare <directory>
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:
$ chmod g+x -R <directory>
This allows the group to write in the directory Recursively
1. User configuration
$ git config --global user.name "Raul Sarmento"
$ git config --global user.email raul _at_ lip.pt
2. Clone remote shared repository to local machine
$ 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
$ cd MARTATree/
$ git log
Commit: 31d8da610511be991944bfed17f88fd5f4bcb5dc
Author: Auger <bernardo@lip.pt>
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 <bernardo@lip.pt>
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 <bernardo@lip.pt>
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
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." 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
$ git add MARTATree.*
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: MARTATree.cc
# modified: MARTATree.h
#
3.3. Commit changes
$ 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
$ 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 <raul _at_ lip.pt>
Date: (65 minutes ago) 2014-02-06 00:01:50 +0000
Subject: Fixed shower curvature.
Commit: 31d8da610511be991944bfed17f88fd5f4bcb5dc
Author: Auger <bernardo@lip.pt>
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 <bernardo@lip.pt>
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 <bernardo@lip.pt>
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)
$ 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(-)