Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
git [Le 22/08/2022, 16:33] moths-art passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
git [Le 17/09/2025, 20:15] (Version actuelle) krodelabestiole [Principaux dépôts Git] màj / diff services - apps / -gitorious +gitea |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | |||
- | |||
{{tag>programmation}} | {{tag>programmation}} | ||
Ligne 9: | 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 29: | 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 47: | 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 155: | 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 180: | 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 218: | 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. Appartient à microsoft depuis 2018. | + | === Services === |
- | * [[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). | + | * **[[http://github.com|GitHub]]** : Important dépôt et gigantesque communauté de développeurs. Gestion du travail en équipe, avec la possibilité de forker un dépôt, pour contribuer au développement. Appartient à Microsoft depuis 2018. |
- | * [[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]]. | + | * **[[http://www.gitlab.com/|GitLab]]** : Alternative indépendante à GitHub. Les fonctionnalités sont très proches, les dépôts sont gratuits, même privés. |
+ | * **[[https://bitbucket.org/|BitBucket]]** : Autre concurrent de GitHub. Propose de faire des dépôts privés gratuits (jusqu'à **5 utilisateurs** sur le même dépôt. Pas d'autre restriction). | ||
+ | * **[[https://framagit.org|FramaGit]]** : Dépôt fonctionnant sous GitLab CE géré par FramaSoft, une alternative aux dépôts propriétaires comme GitHub. | ||
+ | |||
+ | === Applications === | ||
+ | |||
+ | * **[[https://github.com/gitlabhq/gitlabhq|GitLab CE]]** : Logiciel libre de dépôt, à installer sur un serveur de préférence assez puissant. Voir //[[:tutoriel:comment_installer_gitlab-ce_avec_docker_pour_son_poste_de_travail|Comment installer Gitlab-ce avec Docker pour son poste de travail]]//. | ||
+ | * **[[https://about.gitea.com/|Gitea]]** : Beaucoup plus léger et simple que Gitlab. Convient probablement mieux à de l'[[:hebergement#auto-hébergement]]. | ||
- | * [[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 ==== | ||