Configuration
Parameters
git config --global color.diff auto git config --global color.status auto git config --global color.branch auto
Informations about you
git config --global user.name "your_pseudo" git config --global user.email my_email@domain.com
All these informations are in the ~/.gitconfig file.
[color]
        diff = auto
        status = auto
        branch = auto
[user]
        name = votre_pseudo
        email = moi@email.com
[alias]
        ci = commit
        co = checkout
        st = status
        br = branch
Initialisation
- Either you create a repository : When you are in the correct directory.
git init 
- Or you clone an existing one : in this case, you only import the code. You don’t have access to the rep (you can’t modify it, on the online rep)
git clone http://github.com/symfony/symfony.git 
Get informations (status, diff, ….)
git status
git diff src/Symfony/Components/Yaml/Yaml.php
Commit
You must specify the file you want to commit. Making a git status will mark your modified files in red. They will not be taken into account during the commit.
- git add file1 file2: this add the files for the « to commit » list. Then you have to make a- git commit. Used when you create new files Git doesn’t know.
- git comment -awill commit all the files (Changes to be committed and Changed but not updated). Used to save all the changes you’ve made.
- git commit file1 file2indicate the files and commit them. Used to commit specific files.
When a commit is done, vim or nano open. You have to write a message describing your changes.
Online Repository
Creation
- Without an existing local repository
mkdir myRepository cd myRepository git init touch README git add README git commit -m 'first commit' git remote add origin http://gitlab.be/username/onlineProject.git git push -u origin master 
- With an existing local repository
cd existing_git_repo git remote add origin http://gitlab.be/jerome/onlineProject.git git push -u origin master 
Usage
You can work locally, like explained above. Then, you can save to the online repository. So a typical scenario looks like the following code :
# add all the current directories and files to the staging area git add . # commit then locally git commit -a -m "my message" # push them to the remote repository git push
Working with Branches
Create a branch when you are doing a huge modification (long duration, many commit required, …)
# lists available branches git branch
# create a branch called "testing" from the "master" branch git branch testing master # or Create branch and directly switch to it git checkout -b testing
To start working in a branch you have to checkout the branch. If you checkout a branch, the HEAD pointer moves to the last commit in this branch and the files in the working tree are set to the state of this commit.
# switch to your new branch git checkout testing # do some changes echo "Cool new feature in this branch" > test01 git commit -a -m "new feature" # switch to the master branch git checkout master # check that the content of # the test01 file is the old one cat test01
Delete a branch
# delete branch testing git branch -d testing
Push the branch to the remote repository, make some change in the branch and push them too.
# push current branch to a branch called "testing" to remote repository git push origin testing # switch to the testing branch git checkout testing # some changes echo "News for you" > test01 git commit -a -m "new feature in branch" # push all including branch git push
See the differences between 2 branches
# shows the differences between # current head of master and your_branch git diff master your_branch
zerzr
zer
cd existing_git_repo git remote add origin http://gitlab.laluminium.be/jerome/webkot4.git git push -u origin master
