Outils pour utilisateurs

Outils du site


dvcs:git

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
dvcs:git [2024/05/19 16:50] olivierdvcs:git [2025/02/15 11:52] (Version actuelle) olivier
Ligne 1: Ligne 1:
 ====== Git ====== ====== Git ======
  
-Il s'agit d'un logiciel de gestion de versions décentralisé. Initialement développé par [[http://fr.wikipedia.org/wiki/Linus_Torvalds|Linus Torvalds]].+Il a été développé à l'origine pour le noyau (//kernel//) linux. 
 + 
 +<WRAP center shadow alert 60%> 
 +Les exemples mentionnent **framagit.org**, mais cela s'applique à n'importe quelle forges. 
 +</WRAP> 
  
 ===== Paramétrage ===== ===== Paramétrage =====
Ligne 7: Ligne 12:
 Pour personnaliser son environnement, on doit modifier certaines variables, grâce à l'option **config**. Pour personnaliser son environnement, on doit modifier certaines variables, grâce à l'option **config**.
  
-Par exemple, pour ses identifiants :+Par exemple, pour ses identifiants (prénom, mail) :
  
 <code> <code>
-git config --global user.name "Olivier Duchateau+git config --global user.name "...
-git config --global user.email me@domain.tld+git config --global user.email ...
 </code> </code>
  
-Définir le nom par défaut de la branche « principale » (//master//).+<WRAP center shadow help 60%> 
 +Par défaut la branche principale s'appelle //master// (pour certains utilisateurs, elle a une connotation négativedonc bien souvent elle est renommée en //main//. 
 + 
 +Ce réglage est par défaut chez framagit.org.
  
 <code>git config --global init.defaultBranch main</code> <code>git config --global init.defaultBranch main</code>
  
-<WRAP center round tip 60%> +----
-Maintenant à chaque fois qu'un dépôt sera créé, la branche par défaut s'appellera **main**. +
-</WRAP>+
  
-Pour utiliser son éditeur préféré (lors des //commits//).+Pour utiliser un éditeur de texte particulier :
  
 <code> <code>
-git config --global core.editor emacs+git config --global core.editor ...
 </code> </code>
- +</WRAP>
-Dans cet exemple, je précise, que je souhaite utiliser Emacs.+
  
 Pour connaître la liste complète des réglages : Pour connaître la liste complète des réglages :
Ligne 34: Ligne 39:
 <code>git config --list</code> <code>git config --list</code>
  
-===== Quelques commandes utiles =====+===== Tester si sa clé SSH est valide =====
  
-Ajouter des fichiers+Par exemple chez framagit.org. Il faut avoir au préalable, généré sa propre [[dvcs:framagit#ajout_d_un_cle_openssh|clée]], et configurer le fichier ''~/.ssh/config''.
  
 <code> <code>
-git add ... +ssh git@framagit.org 
-</code>+[...] 
 +PTY allocation request failed on channel 0 
 +Welcome to GitLab, @olivierd! 
 +Connection to framagit.org closed.</code> 
 + 
 +===== Créer un dépôt ===== 
 + 
 +Il faut passer par l'interface Web de la forge. 
 + 
 +<WRAP center shadow info 60%> 
 +En théorie, il est possible de le faire en ligne de commande. Mais bien souvent 
 +cette fonctionnalité est bloquée par les forges.
  
-Connaître l'état du dépôt (savoir si des fichiers ont été modifiés)+Par exemple chez framagit.org, si notre projet s'appelle "super-projet" :
  
 <code> <code>
-git status+mkdir super-projet ; cd super-projet/ 
 +git init 
 +git remote add origin git@framagit.org:identifiant/super-projet.git 
 +git push -u origin main
 </code> </code>
 +</WRAP>
  
-Enregistrer les modifications+En général, on clone notre dépôt pour pouvoir commencer à travailler et envoyer nos modifications
 + 
 +<wrap important>Ci-dessous on clone en SSH (c'est à dire, on a un compte chez framagit.org).</wrap>
  
 <code> <code>
-git commit -a+git clone git@framagit.org:identifiant/super-projet.git
 </code> </code>
  
-Envoyer les modifications du dépôt sur un dépôt externe à celui en local+<WRAP center shadow tip 60%> 
 +Si on a déjà un répertoire qui s'appelle "super-projet", on utilise cette commande :
  
 <code> <code>
-git push+git clone git@framagit.org:identifiant/super-projet.git .
 </code> </code>
 +</WRAP>
  
-===== Récupérer les sources =====+Il faut remplacer **identifiant** par son propre identifiant
  
-D'une manière générale, pour obtenir les sources d'un logiciel, il faut utiliser l'option **clone**.+===== Quelques commandes utiles =====
  
-<code>git clone https://git.domain.tld/project</code>+Ajouter des fichiers :
  
-==== Sélectionner une branche particulière ====+<code> 
 +git add ... 
 +</code>
  
-Cela dépend, comment le dépôt est utilisé. Lorsqu'une branche est parfaitement identifiable par une étiquette, on peut procéder de la manière suivante.+Connaître l'état du dépôt (savoir si des fichiers ont été modifiés) :
  
-<code>git clone -b <branch> --single-branch https://git.domain.tld/project</code>+<code> 
 +git status 
 +</code>
  
-==== Sélectionner un « tag » ====+Enregistrer nos modifications (c'est en local) :
  
-Au cours de l'évolution d'un logiciel son ou ses développeur(s) préfère(nt) utiliser des //tags//, cela permet d'identifier les différentes versions. +<code
- +git commit -a 
-<WRAP center round info 60%+</code>
-Il faut au préalable //cloner// le dépôt distant. +
-</WRAP>+
  
 +Envoyer nos modifications vers un dépôt externe :
 <code> <code>
-git tag +git push
-git checkout <tag>+
 </code> </code>
  
-Ou <code>git checkout tags/...</code>+Annuler une ou plusieurs modifications :
  
-  * **git tag** → liste tous les tags +Si l'on a pas encore //commité//, via l'option ''git commit -a'' les modifications faites dans notre dépôt local  (ceci va annuler les modifications !)
-  * **git checkout <tag>** → spécifie la « révision » souhaitée +
-  * **...** → spécifie le tag souhaité +
-  * **git status** → vérification du dépôt+
  
-===== Proposer un patch ===== +===== Changer l'URL du dépôt distant, https → ssh =====
- +
-Si on a trouvé un //bug//, et, que l'on a un correctif. Pour en faire profiter le mainteneur, on doit lui envoyer notre //patch//. Voici la démarche à suivre ((Certains projets exigent d'autres compléments)). +
- +
-On travaille uniquement sur notre propre branche ''git branch correctif; git switch correctif''.+
  
-On effectue nos modifications, ensuite on doit les sauvegarder. +<WRAP center shadow help 60%> 
- +C'est utile, si l'on a cloné un dépôt distant directement en HTTPS. Dans ce cas, on ne s'est pas identifié.
-<code>git commit -a</code> +
- +
-Le //patch// sera généré avec la commande ''git format-patch''+
- +
-<code>git format-patch origin/master</code> +
- +
-<WRAP center round important 60%> +
-Dans certains dépôt la branche principale //master// porte un autre nom //main//.+
 </WRAP> </WRAP>
  
-===== Changer l'URL du dépôt distant, https → ssh ===== 
  
 Pour connaître l'état actuel : Pour connaître l'état actuel :
  
 <code>git remote -v <code>git remote -v
-origin https://example.com/ACCOUNT/repo.git (fetch) +origin https://framagit.org/identifiant/super-projet.git (fetch) 
-origin https://example.com/ACCOUNT/repo.git (push)</code>+origin https://framagit.org/identifiant/super-projet.git (push)</code>
  
 Puis Puis
  
-<code>git remote set-url origin git@example.com:ACCOUNT/repo.git</code>+<code>git remote set-url origin git@framagit.org:identifiant/super-projet.git</code>
  
 Il faut bien sûr remplacer : Il faut bien sûr remplacer :
  
-  * **ACCOUNT** → son identifiant +  * **identifiant** → son identifiant 
-  * **repo** → le nom du dépôt +  * **super-projet** → par le nom réel du dépôt
- +
-===== Annuler une ou plusieurs modifications ===== +
- +
-Si l'on a pas encore //commité//, via l'option ''git commit -a'' les modifications faites dans notre dépôt local  (ceci va annuler les modifications !) +
- +
-<code>git checkout .</code>+
dvcs/git.1716130202.txt.gz · Dernière modification : 2024/05/19 16:50 de olivier

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : Public Domain