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 11/04/2018, 09:21]
bcag2 [Autres outils autour de Git] git-lfs
git [Le 06/03/2023, 11:52] (Version actuelle)
bcag2 Sécurité [Utilisation sur un serveur web]
Ligne 7: 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 20: Ligne 20:
  
 Git dispose également de nombreux plugins, les plus utilisés sont dans les dépôts : Git dispose également de nombreux plugins, les plus utilisés sont dans les dépôts :
 +  * [[apt>​git-lfs]] : Gestion des //gros// fichiers, notamment binaires (large file storage) ([[https://​github.com/​git-lfs/​git-lfs/​wiki/​Tutorial|tuto (en)]])
   * [[apt>​git-svn]] : Gestion des dépôts [[:​subversion|SVN]] ;   * [[apt>​git-svn]] : Gestion des dépôts [[:​subversion|SVN]] ;
   * [[apt>​git-cvs]] : Gestion des dépôts [[:​cvs|CVS]] ;   * [[apt>​git-cvs]] : Gestion des dépôts [[:​cvs|CVS]] ;
-  * [[apt>​git-track]] ; 
   * etc.   * etc.
  
 +===== 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>​ [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 ​
     st = status ​     st = status ​
     br = branch ​ </​file>​     br = branch ​ </​file>​
-Les alias quant à eux permettent de raccourcir les commandes, exemple :  ''​git st'' ​ au lieu de  ''​git status''​+Les alias quant à eux permettent de raccourcir les commandes, exemple :  ''​git st'' ​ au lieu de  ''​git status''​((autres exemples sur : [[https://​touticphoto.fr/​developpement/​14-git-pour-la-gestion-de-depot-de-codes-source-resume]])) 
 + 
 +Avec les récentes versions de git (notamment la v2.25), les messages retournés par git sont assez bien traduits. Mais pour remonter des problèmes sur des forums ou dépôts en anglais, ça peut-être bien de pouvoir les avoir en anglais.\\ 
 +Pour cela, vous pouvez modifier la langue de votre système, ce qui est assez extrême, ou simplement définir un [[:​alias|alias]],​\\ 
 +dans votre fichier //​~/​.bash_aliases//,​ ajouter, par exemple, la ligne :\\ 
 +<code bash> 
 +alias giten='​LANGUAGE=en_GB:​en_Us git' 
 +</​code>​ 
 +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 99: Ligne 116:
 Crée un //commit// contenant fichier1 et fichier2. Ces fichiers auront dû être au préalable ajoutés au dépôt avec la commande ''​git add''​. Crée un //commit// contenant fichier1 et fichier2. Ces fichiers auront dû être au préalable ajoutés au dépôt avec la commande ''​git add''​.
  
-("Il s'agit de la validation d'une transaction. Après avoir commis la transaction,​ les informations traitées par cette transaction seront disponibles pour les autres sessions, c'​est-à-dire pour toute autre transaction éventuelle."​http://​fr.wikipedia.org/​wiki/​Commit ​)+Il s'agit de la validation d'une transaction. Après avoir commis la transaction,​ les informations traitées par cette transaction seront disponibles pour les autres sessions, c'​est-à-dire pour toute autre transaction éventuelle. 
 +> → [[wp>Commit]]
  
   git commit -a   git commit -a
Ligne 143: 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 168: 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 188: Ligne 205:
   * **(fr)** [[https://​gogs.io/​|Gogs]]:​ serveur de gestion de dépôts comme Gitolite avec interface http(s) inclus par défaut.   * **(fr)** [[https://​gogs.io/​|Gogs]]:​ serveur de gestion de dépôts comme Gitolite avec interface http(s) inclus par défaut.
    * **(en)** [[http://​philjackson.github.com/​magit/​|Magit]],​ intégration de Git dans Emacs.    * **(en)** [[http://​philjackson.github.com/​magit/​|Magit]],​ intégration de Git dans Emacs.
-   * **(en)** [[http://​www.vim.org/​scripts/​script.php?​script_id=2975|Fugitive]],​ Intégration de Git dans Vim.+   * **(en)** [[https://​www.vim.org/​scripts/​script.php?​script_id=2975|Fugitive]],​ Intégration de Git dans Vim.
    * [[:​gource|Gource]],​ Visualiser l'​activité de votre dépôt dans une animation qui traverse le temps.    * [[:​gource|Gource]],​ Visualiser l'​activité de votre dépôt dans une animation qui traverse le temps.
    * **(en)** [[http://​goodies.xfce.org/​projects/​thunar-plugins/​thunar-vcs-plugin|thunar-vcs-plugin]], ​ permet l'​accès aux dépôts Git et [[:​Subversion]] via [[:​Thunar]]. Le paquet [[apt>​thunar-vcs-plugin]] est disponible pour **Ubuntu versions [[:​precise|12.04]] & +**.    * **(en)** [[http://​goodies.xfce.org/​projects/​thunar-plugins/​thunar-vcs-plugin|thunar-vcs-plugin]], ​ permet l'​accès aux dépôts Git et [[:​Subversion]] via [[:​Thunar]]. Le paquet [[apt>​thunar-vcs-plugin]] est disponible pour **Ubuntu versions [[:​precise|12.04]] & +**.
Ligne 195: Ligne 212:
    * **(fr)** [[http://​actual-it.info/​2013/​gitg/​|GITg]],​ GIT en mode graphique - Tutoriel d'​utilisation de GITg    * **(fr)** [[http://​actual-it.info/​2013/​gitg/​|GITg]],​ GIT en mode graphique - Tutoriel d'​utilisation de GITg
    * **(en)** [[https://​git-lfs.github.com/​|git-lfs Large File Storage]], gestion des fichiers lourds associés au projet: fichiers audio, vidéo, jeux de données (test…), graphiques… qui sont déposés sur un serveur à part.    * **(en)** [[https://​git-lfs.github.com/​|git-lfs Large File Storage]], gestion des fichiers lourds associés au projet: fichiers audio, vidéo, jeux de données (test…), graphiques… qui sont déposés sur un serveur à part.
 +   * **(fr)** [[:meld]] qui peut-être utilisé pour gérer les conflits de fusion (merge), pour le configurer : <code bash>git config --global merge.tool meld</​code>​ et l'​appeler <code bash>git mergetool</​code>​
 ==== 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 ;
Ligne 205: Ligne 223:
 ==== Principaux dépôts Git ==== ==== Principaux dépôts Git ====
  
-  * [[http://​github.com|GitHub]] : très bon dépôt gratuit. Une bonne gestion du travail en équipe, avec la possibilité de forker un dépôt, pour contribuer au développement sur son propre dépôt, tout en gardant un contact étroit avec le dépôt original.+  * [[http://​github.com|GitHub]] : très bon dépôt gratuit. Une bonne gestion du travail en équipe, avec la possibilité de forker un dépôt, pour contribuer au développement sur son propre dépôt, tout en gardant un contact étroit avec le dépôt original. Appartient à microsoft depuis 2018.
   * [[http://​www.gitorious.org/​|Gitorious]] : utilisé par de gros projets comme le framework Qt. A noter que le site web gitorious est un logiciel libre et donc installable sur son propre serveur à l'​inverse de GitHub qui est propriétaire. Les fonctionnalités communautaires des 2 me semblent assez proches.   * [[http://​www.gitorious.org/​|Gitorious]] : utilisé par de gros projets comme le framework Qt. A noter que le site web gitorious est un logiciel libre et donc installable sur son propre serveur à l'​inverse de GitHub qui est propriétaire. Les fonctionnalités communautaires des 2 me semblent assez proches.
   * [[https://​bitbucket.org/​|BitBucket]] : concurrent de Github. Propose de faire des __dépôts privés__ gratuits (jusqu'​a **5 utilisateurs** sur le même dépôt. Pas d'​autre restriction).   * [[https://​bitbucket.org/​|BitBucket]] : concurrent de Github. Propose de faire des __dépôts privés__ gratuits (jusqu'​a **5 utilisateurs** sur le même dépôt. Pas d'​autre restriction).
-  * [[https://​github.com/​gitlabhq/​gitlabhq|GitLab]] : logiciel ​open-source de dépôt, à installer sur sa machine [[https://​github.com/​gitlabhq/​gitlabhq/​blob/​master/​doc/​install/​installation.md|Manuel d'​installation]].+  * [[https://​github.com/​gitlabhq/​gitlabhq|GitLab]] : [[tutoriel:​comment_installer_gitlab-ce_avec_docker_pour_son_poste_de_travail|Comment installer Gitlab-ce avec Docker pour son poste de travail]]. Logiciel ​open-source de dépôt, à installer sur sa machine ​depuis les sources ​[[https://​github.com/​gitlabhq/​gitlabhq/​blob/​master/​doc/​install/​installation.md|Manuel d'​installation]]. 
   * [[https://​framagit.org|FramaGit]] : dépôt fonctionnant sous GitLab géré par FramaSoft, une alternative aux dépôts propriétaires comme GitHub.   * [[https://​framagit.org|FramaGit]] : dépôt fonctionnant sous GitLab géré par FramaSoft, une alternative aux dépôts propriétaires comme GitHub.
 ==== Autres ==== ==== Autres ====
  
-  * **(fr)** Discussion [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=692171|«Conversion d'un dépôt bzr en un dépôt git»]] sur le forum ubuntu-fr.+  * **(fr)** Discussion [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=692171|«Conversion d'un dépôt bzr en un dépôt git»]] sur le forum ubuntu-fr.
   * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=1310241|Création rapide de serveur git avec tutoriel]]   * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=1310241|Création rapide de serveur git avec tutoriel]]
   * **(fr)** [[http://​blogs.media-tips.com/​bernard.opic/​2013/​12/​01/​initiez-vous-a-git-avec-laide-memoire-interactif-dandrew-peterson/​|Aide-mémoire interactif]]   * **(fr)** [[http://​blogs.media-tips.com/​bernard.opic/​2013/​12/​01/​initiez-vous-a-git-avec-laide-memoire-interactif-dandrew-peterson/​|Aide-mémoire interactif]]
Ligne 219: Ligne 238:
 ---- ----
  
-//​Contributeurs principaux : [[utilisateurs:​geenux]].//​+//​Contributeurs principaux : [[utilisateurs:​geenux]], [[utilisateurs:​bcag2]].//
  • git.1523431265.txt.gz
  • Dernière modification: Le 11/04/2018, 09:21
  • par bcag2