Outils pour utilisateurs

Outils du site


git

Ceci est une ancienne révision du document !


La commande "git"

La page de man de git et la page aide de FramaGit.

Configuration globale

On peut rentrer son nom, son mail et demander la coloration automatique :

$ git config --global user.name "Simon Lefort"
$ git config --global user.email "mail@domain.be"
$ git config --global color.ui auto

On peut vérifier les informations que l'on a entrées :

$ git config --global --list
user.name=Simon Lefort
user.email=mai@domain.be
color.ui=auto

Clé SSH

GitLab permet de travailler avec des clés SSH, ce qui permet d'envoyer les modifications sans devoir taper une mot de passe à chaque fois. (Il suffit de déverouiller le trousseau de clé à la première utilisation.)

Il faut tout d'abord voir si on a une clé existante :

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAA(...) simon@ordi

Si nous n'avons pas encore de clé, on en génère une (voir ssh). Si nous utilisont déjà ssh et que nous avons une clé, nous pouvons passer à l'étape suivante.

Pour ajouter une clé à GitLab, on doit se rendre sur la page User Settings > SSH Keys. Il faut copier la clé publique dans la case appropriée. Soit manuellement soit via xclip :

$ xclip -sel clip < ~/.ssh/id_rsa.pub

Créer un repository

À partir de GitLab

Appuyer sur le bouton “New Project” :

Remplir les informations de base (nom du projet, description, visibilité, …) :

Cloner le dépôt depuis l'ordinateur local :

$ git clone git@framagit.org:(...).git
Clonage dans 'dossier'...

À partir de son ordinateur local

Pas encore trouvé comment créer le dépôt depuis l'ordinateur local et puis l'envoyer vers GitLab.

Utilisation basique

La première chose à faire, en local, c'est de cloner le dépôt. On peut le faire via l'adresse “git@…” ou via un lien “https://...” :

$ git clone git@framagit.org:simon.lefort/NOM-PROJET.git
$ git clone https://simon.lefort@framagit.org/simon.lefort/NOM-PROJET.git

Aller sur la branche “master” :

$ git checkout master
Déjà sur 'master'
Votre branche est à jour avec 'origin/master'.

Télécharger les derniers changements sur le dépôt, branche “master” :

$ git pull origin master
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Dépaquetage des objets: 100% (3/3), fait.
Depuis framagit.org:simon.lefort/NOM-PROJET
 * branch            master     -> FETCH_HEAD
   48f7290..10626aa  master     -> origin/master
Mise à jour 48f7290..10626aa
Fast-forward
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Une fois que le dossier local est bien à jour par rapport au dépôt distant, on peut commencer à modifier un/des fichier(s). Il est apparemment mieux de modifier un fichier par commit, pour simplifier les choses.

$ nvim README.md
$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
Modifications qui ne seront pas validées :
  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
  (utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail)
 
	modifié :         README.md
 
aucune modification n'a été ajoutée à la validation (utilisez "git add" ou "git commit -a")

Faire un “commit” (ajout au dépôt local) des fichiers modifiés avec un commentaire :

$ git commit -am "Update README.md"
[master b706f64] Update README.md
 1 file changed, 1 insertion(+)

On peut faire la même chose en deux étapes. Tout d'abord en sélectionnant le fichier qu'on veut “commiter” puis en faisant le commit (Plus besoin de l'option “-a” dans ce cas!) :

$ git add README.md 
$ git commit -m "Update README.md"
[master 4fcea35] Update README.md
 1 file changed, 1 insertion(+)

On peut vérifier le statut et voir s'il y a ou non des différence entre le dépôt local et le dépôt distant:

$ git status
Sur la branche master
Votre branche est en avance sur 'origin/master' de 2 commits.
  (utilisez "git push" pour publier vos commits locaux)
nothing to commit, working tree clean
$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
nothing to commit, working tree clean

S'il y a des différences et que le dépôt local est en avance, on peut “pousser” celles-ci sur le dépôt distant :

$ git push origin master
Décompte des objets: 6, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (6/6), fait.
Écriture des objets: 100% (6/6), 640 bytes | 0 bytes/s, fait.
Total 6 (delta 2), reused 0 (delta 0)
 
To framagit.org:simon.lefort/NOM-PROJET.git
   a7d5e52..4fcea35  master -> master

Quand on travaille sur la branche principale, les options “origin” et “master” ne sont pas indispensables, on peut faire directement :

$ git push 
Everything up-to-date

Utilisation avancée

Les commandes vues dans l'utilisation basique permettent de travailler seul et sur une seule branche.

Sources

git.1492242942.txt.gz · Dernière modification : 2020/08/09 12:59 (modification externe)