!CHAOS uses git as code version system and national open-source service "INFN Stash" for central approval server. 

In our development, the rule versions are expressed with the follow semantic: x.y.z-[alpha,beta,rc].yy.

next section of the semantic, define the stability of the code and identify its maturity level.

GIT suggested documentation

comprehensive git documentation:

https://git-scm.com/book/en/v2

A nice command-line emulator (we suggest to keep it open alongside the documentation and use it to practice the commands)

https://try.github.io/levels/1/challenges/1

GIT useful commands

GIT typical case

I want to modify add something in a existing git repository. Ideal steps:

Let's suppose to be in the development or master branch.


0] be sure you are aligned with the remote

git fetch

git pull

1] create a new branch.

git checkout -b <my branch>

2] do your job
3] commit the changes to your local repository
git commit -m "comments" .
4] (optional) commit your changes also remotely 
git push origin  <my branch>
5] merge branch back (i.e in development)
git checkout development
git merge <my branch>
git push origin

GIT chaos wrapper

./tools/chaos_git.sh is a script that allows to perform the most useful actions on more than one git project. It applies git commands recursively on the subdirectories where it is launched (-h for help).

Client Tools

Windows/MAC https://www.sourcetreeapp.com/

Linux command line: sudo apt-get install git