technique:git:git_avancees

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édentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
technique:git:git_avancees [2020/01/04 17:53] francoisatechnique:git:git_avancees [2020/04/26 02:50] francoisa
Ligne 19: Ligne 19:
 </code> </code>
  
-ou  plus directement :+ou plus directement :
  
 <code> <code>
Ligne 69: Ligne 69:
 </code> </code>
  
-ff+===== Gestion de conflits ===== 
 + 
 +En cas de merge conflictuel, il faut résoudre le confilt en éditant les fichiers fusionnés qui contiennent les diff. 
 + 
 +Il faut éditer les fichiers en conflit et finir avec un : 
 + 
 +<code> 
 +git add fichiers_en_conflit 
 +git commit 
 + 
 +</code> 
 + 
 +Il est possible d'utiliser des outils comme : 
 + 
 +<code> 
 +git mergetool fichier_en_conflit 
 + 
 +</code> 
 + 
 +Il est possible de merger sans créer de nouveau commit : 
 + 
 +<code> 
 +git merge --no-commit nouvellebranche 
 + 
 +</code> 
 + 
 +Puis modifier/corriger les fichiers et enfin d'ajouter et de commiter les changements manuellement 
 + 
 +Il est alors aussi possible d'annuler un merge avec un : 
 + 
 +<code> 
 +git merge --abort 
 + 
 +</code> 
 + 
 +===== Travail collaboratif ===== 
 + 
 +Récupérer un dépot distant avec : 
 + 
 +<code> 
 +git clone url_distant 
 + 
 +</code> 
 + 
 +Dans ce cas, l'origine du dépot distant est mémorisé dans "origin"
 + 
 +git fetch permet de récupérer les branches distantes. Attention, git pull <⇒ git fetch 
 + 
 +<code> 
 +git pull # récupère les sources et merge les différences 
 +git fetch # récupère les sources sans fusionner 
 + 
 +</code> 
 + 
 +git pull = git fetch + git merge FETCH_HEAD 
 + 
 +Pour voir les différences avec le dépot distant : 
 + 
 +<code> 
 +git remote -v 
 +git branch -r # pour voir les branches distantes connues localement 
 +git branch -vv # si la branche loclae est trackée 
 + 
 +</code> 
 + 
 +===== Ajout d'un dépot supplémentaire distant ===== 
 + 
 +<code> 
 +git remote add nomchoisi urldepot.git 
 + 
 +git fetch nomchoisi 
 + 
 +</code> 
 + 
 +Et pour mettre à jour le dépot local vers ce dépot distant : 
 + 
 +<code> 
 +git push -u nomchoisi master 
 + 
 +</code> 
 + 
 +Attention, il faudra metre à jour les 2 dépots de manière manuelle. Par exemple : 
 + 
 +<code> 
 +git push heroku master 
 + 
 +git push -u nomchoisi master 
 + 
 +</code> 
 +===== Gestion d'un dépot avec authentification par clef SSH ===== 
 + 
 +1) Ajouter sa clef SSH publique dans son profil du dépot distant (github, framagit...) 
 + 
 +2) Définir par défaut l'utilisation de sa clef pour ce type de dépot dans ''~/.ssh/config''
 +<code> 
 +Host github.com 
 + IdentityFile ~/.ssh/id_rsa 
 + 
 +</code> 
 + 
 +3) définir pour le dépot git local que l'accès se fait en ssh dans ''dossiergit/.git/config'' et changer l'adresse du dépot distant : 
 +<code> 
 +[remote "origin"
 +        url = ssh://git@github.com/depotperso/monprojet.git 
 + 
 +</code> 
 + 
 +Et c'est tout. Au prochain ''git push'', la passphrase de la clef sera demandée (sauf si elle est mémorisée dans le ssh-agent). 
  
  • technique/git/git_avancees.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1