GIT Utilisation simple
Cette page indique comment utiliser GIT simplement.
Attention ici je vais parler de client et de serveurs mais GIT n'est pas vraiment organisé comme cela. Git est pas nature distribué. On peut faire des dépôts git ou on veut et on peut faire un "push" ou un "pull" vers ou depuis n'importe que autre dépôt.
Le concept de serveur est juste une machine qui contiendra un dépôt commun sur lequel d'autres machines pourront référencer leur dépôts. Mais un dépôt git peu faire des "push" ou "pull" vers ou depuis de multiples autres dépôts. Un développeur peut faire un push dans le dépôt d'un autre développeur. Une équipe peut avoir un dépôt à elle avec de multiples développeurs dessus et le push global sera fait depuis le dépôt de cette équipe. La notion de branche est plus adaptée à ce principe mais tout est possible.
Création d'un dépôt sur le serveur
On va parti du principe que l'on a un serveur qui contiendra les dépôts de références. Les autres seront des clients.
Donc sur le serveur on va créer un dépôt "brut". Il ne contiendra que les diverses versions de son contenu. Il ne sera jamais utilisé pour visualiser/éditer le contenu.
Utilisateur git.
Sur le serveur on va créer un user git dans lequel on stockera les repository. (on pourrait en créer d'autres si on veut gérer des droits plus fins).
sudo adduser git
su - git
Password: <le mote de passe>
mkdir repo
cd repo
on a crée le repository racine de notre instance de git!
Création d'un repository
git init --bare sample.git
--bare signifie que l'on veut un dépôt "brut". le nom des repository "bare" sont par convention terminé par un .git mais ce n'est pas une aubligation. Ma version m'averti que la branche par défaut est "master" mais que je peux la changer.
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /home/jpinon/repo/sample.git/
De mon côté "master" me va très bien. Je ne changes rien!
Suppression d'un repository
Le répertoire .git est autoporteur. Pour supprimer le repository on utilise donc la commande:
cd $HOME/repo
rm -rf sample.git
Attention ce n'est pas réversible!
Accès sur un client
Chez le client je peux créer un dépôt local dans lequel je vais travailler par:
cd sources # par exemple je mets mes sources là!
git clone git@git:repo/sample.git
Le premier git (avant le @) est le user et le second est le serveur. Ca nous demande le mot de passe (si on n'a pas configuré de clé ssh) et ça nous indique que tout s'est bien passé.
Cloning into 'sample'...
git@git's password:
warning: You appear to have cloned an empty repository.
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Ca nous refait le laïus sur la branche par défaut. Comme je l'ai pas changé sur le serveur on peut l'ignorer ici.
Ca nous crée un répertoire sample.
un simple :
ls -al sample
Nous donne:
total 12
drwxrwxr-x 3 moi users 4096 Jan 4 22:04 .
drwxrwxr-x 5 moi users 4096 Jan 4 22:04 ..
drwxrwxr-x 7 moi users 4096 Jan 4 22:04 .git
Comme dit dans le laïus ci-dessus le repo étant vide le répertoire est vide. Sauf le répertoire .git est là. Il est utilisé pour stocker tout ce que l'on va faire sur notre code source.