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
git [Le 25/05/2022, 15:37]
bcag2 contrib !-)
git [Le 06/03/2023, 11:52] (Version actuelle)
bcag2 Sécurité [Utilisation sur un serveur web]
Ligne 1: Ligne 1:
- 
 {{tag>​programmation}} {{tag>​programmation}}
  
Ligne 8: Ligne 7:
 ====== Git ====== ====== Git ======
  
-**Git** est un logiciel de gestion de versions décentralisé. Il est conçu pour être efficace tant avec les petits projets, que les plus importants. ​+**Git** est un logiciel de gestion de versions décentralisé. Il est conçu pour être efficace tant avec les petits projets, que les plus importants.
  
-Git a spécialement été créé pour le développement du noyau linux. ​+Git a spécialement été créé pour le développement du noyau linux.
  
 Ce projet a débuté en 2005, Linus Torvalds voulait créer une alternative au logiciel propriétaire BitKeeper. Depuis, Git a beaucoup évolué et est utilisé par de nombreux projets. Ce projet a débuté en 2005, Linus Torvalds voulait créer une alternative au logiciel propriétaire BitKeeper. Depuis, Git a beaucoup évolué et est utilisé par de nombreux projets.
Ligne 28: Ligne 27:
 ===== Configuration ===== ===== Configuration =====
 Une fois l'​installation réalisée, il faut impérativement définir le paramètre [user]. Pour cela, [[:​tutoriel:​comment_editer_un_fichier|éditez le fichier]] caché **''​.gitconfig''​** se trouvant dans votre dossier personnel : Une fois l'​installation réalisée, il faut impérativement définir le paramètre [user]. Pour cela, [[:​tutoriel:​comment_editer_un_fichier|éditez le fichier]] caché **''​.gitconfig''​** se trouvant dans votre dossier personnel :
-<file bash> [user] ​+<file bash> [user]
     email = p.nom@ubuntu-fr.org     email = p.nom@ubuntu-fr.org
     name = nom_programmeur ​     name = nom_programmeur ​
  
- ​[alias] ​+ ​[alias]
     ci = commit ​     ci = commit ​
     co = checkout ​     co = checkout ​
Ligne 46: Ligne 45:
 </​code>​ </​code>​
 ainsi, **git** continue a retourner des commentaires en français, et **giten** les retournent en anglais. ainsi, **git** continue a retourner des commentaires en français, et **giten** les retournent en anglais.
 +
 +==== Utilisation sur un serveur web ====
 +Si vous utilisez git pour récupérer le code d'un projet web, il est important d'​éviter que le répertoire //.git// soit dans le répertoire exposé sur le web, auquel cas, un hacker peut facilement y accéder par l'url : exemple.fr/​.git\\
 +Il est également possible d'​ajouter (avec un serveur [[apache2|apache]]) un fichier :  ​
 +<file .htaccess>​
 +RedirectMatch 404 /\.git
 +</​file>​
 +<note tip>​C'​est tout l'​intérêt de la structuration des frameworks avec un répertoire //public// qui évite d'​exposer la racine du projet, et d'un fichier .env ou équivalent pour que les mots de passe n'​apparaissent pas dans le code</​note>​
 ===== Utilisation basique ===== ===== Utilisation basique =====
  
 ==== Gérer les dépôts ==== ==== Gérer les dépôts ====
  
-Avant de commencer à utiliser Git, il faut lui demander de créer un nouveau dépôt. ​+Avant de commencer à utiliser Git, il faut lui demander de créer un nouveau dépôt.
  
   mkdir nom_depot   mkdir nom_depot
Ligne 154: Ligne 161:
   git merge <​nom_branche>​   git merge <​nom_branche>​
   ​   ​
-Fusionne la branche courante avec la branche nommée "​nom_branche"​. Il se peut qu'il y ait des conflits et que Git ne soit pas capable de les résoudre tout seul. Les conflits apparaissent lors de changements divergents au même endroit dans un fichier. Si il y a des conflits, Git laissera un marquage directement dans le fichier, contenant le code de la branche courante, et celui de la branche que vous voulez fusionner. Vous devrez alors corriger le problème manuellement. Une fois corrigé, vous devez //​commiter//​ les changements pour finaliser le //​merge//​. ​+Fusionne la branche courante avec la branche nommée "​nom_branche"​. Il se peut qu'il y ait des conflits et que Git ne soit pas capable de les résoudre tout seul. Les conflits apparaissent lors de changements divergents au même endroit dans un fichier. Si il y a des conflits, Git laissera un marquage directement dans le fichier, contenant le code de la branche courante, et celui de la branche que vous voulez fusionner. Vous devrez alors corriger le problème manuellement. Une fois corrigé, vous devez //​commiter//​ les changements pour finaliser le //merge//.
  
 Si jamais vous décidez d'​abandonner la fusion, alors exécutez la commande : Si jamais vous décidez d'​abandonner la fusion, alors exécutez la commande :
Ligne 179: Ligne 186:
   * **(en)** [[https://​live.gnome.org/​giggle|Giggle]] (GTK+)   * **(en)** [[https://​live.gnome.org/​giggle|Giggle]] (GTK+)
   * **(en)** [[https://​github.com/​krig/​git-age|git-age]],​ interface graphique pour la commande [[http://​www.alexgirard.com/​git-book/​5_trouver_les_probl%25C3%25A8mes_-_git_blame.html|git blame]] (PyGTK)   * **(en)** [[https://​github.com/​krig/​git-age|git-age]],​ interface graphique pour la commande [[http://​www.alexgirard.com/​git-book/​5_trouver_les_probl%25C3%25A8mes_-_git_blame.html|git blame]] (PyGTK)
-   * **(en)** [[http://git-cola.github.com/​|git-cola]] (PyQt+  ​* **(en)** [[https://​github.com/​git-cola/​git-cola|git-cola]] (PyQt)
-   * **(en)** [[http://​www.collab.net/​giteyeapp|GitEye]] (propriétaire ?)+
   * **(en)** [[https://​github.com/​gdevic/​GitForce|GitForce]] (Mono)   * **(en)** [[https://​github.com/​gdevic/​GitForce|GitForce]] (Mono)
   * [[apt>​gitg]] (GTK+)   * [[apt>​gitg]] (GTK+)
Ligne 209: Ligne 215:
 ==== Principaux sites concernant Git ==== ==== Principaux sites concernant Git ====
  
-  * **(en)** [[http://​git-scm.com/​|Le site officiel de git maintenu par Scott Chacon]] ; +  * **(en)** [[https://​git-scm.com/​|Le site officiel de git maintenu par Scott Chacon]] ; 
-  * **(fr)** [[http://​git-scm.com/​book/​fr|le livre en français sur le site officiel]];+  * **(fr)** [[https://​git-scm.com/​book/​fr|le livre en français sur le site officiel]];
   * **(en)** [[http://​git.or.cz/​index.html|Le site officiel de git maintenu par Petr Baudis]] ;   * **(en)** [[http://​git.or.cz/​index.html|Le site officiel de git maintenu par Petr Baudis]] ;
   * **(en)** [[http://​www.kernel.org/​pub/​software/​scm/​git/​docs/​user-manual.html|Manuel utilisateur Git]] : Une référence très complète ;   * **(en)** [[http://​www.kernel.org/​pub/​software/​scm/​git/​docs/​user-manual.html|Manuel utilisateur Git]] : Une référence très complète ;
  • git.1653485842.txt.gz
  • Dernière modification: Le 25/05/2022, 15:37
  • par bcag2