Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
documentation:informatique:linux:git:index [2019/01/22 12:41] – f1sls | documentation:informatique:linux:git:index [2023/02/01 04:47] (Version actuelle) – [Basculer sur master] f1sls | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== GIT ====== | ====== GIT ====== | ||
+ | |||
+ | ===== Créer un utilisateur GIT ===== | ||
+ | Parcourons les étapes de la mise en place d'un accès SSH côté serveur. Dans cet exemple, vous utiliserez la méthode des authorized_keys pour authentifier vos utilisateurs. Nous supposerons également que vous utilisez une distribution Linux standard telle qu' | ||
+ | |||
+ | < | ||
+ | $> sudo adduser git | ||
+ | $> su git | ||
+ | $> cd | ||
+ | $> mkdir .ssh | ||
+ | </ | ||
+ | |||
+ | Ensuite, vous devez ajouter la clé publique d'un développeur au fichier authorized_keys de l' | ||
===== Installer un serveur GIT ===== | ===== Installer un serveur GIT ===== | ||
- | [[https:// | + | [[https:// |
+ | \\ | ||
Pour réaliser l’installation initiale d’un serveur Git, il faut exporter un dépôt existant dans un nouveau dépôt nu — un dépôt qui ne contient pas de copie de répertoire de travail. C’est généralement simple à faire. Pour cloner votre dépôt en créant un nouveau dépôt nu, lancez la commande clone avec l’option --bare. Par convention, les répertoires de dépôt nu finissent en .git, de cette manière : | Pour réaliser l’installation initiale d’un serveur Git, il faut exporter un dépôt existant dans un nouveau dépôt nu — un dépôt qui ne contient pas de copie de répertoire de travail. C’est généralement simple à faire. Pour cloner votre dépôt en créant un nouveau dépôt nu, lancez la commande clone avec l’option --bare. Par convention, les répertoires de dépôt nu finissent en .git, de cette manière : | ||
- | < | + | < |
$ git clone --bare mon_project mon_projet.git | $ git clone --bare mon_project mon_projet.git | ||
Clonage dans le dépôt nu ' | Clonage dans le dépôt nu ' | ||
Ligne 14: | Ligne 28: | ||
C’est grossièrement équivalent à : | C’est grossièrement équivalent à : | ||
+ | <code lang=" | ||
$ cp -Rf mon_projet/ | $ cp -Rf mon_projet/ | ||
+ | </ | ||
+ | |||
Il y a quelques légères différences dans le fichier de configuration mais pour l’utilisation envisagée, c’est très proche. La commande extrait le répertoire Git sans répertoire de travail et crée un répertoire spécifique pour l’accueillir. | Il y a quelques légères différences dans le fichier de configuration mais pour l’utilisation envisagée, c’est très proche. La commande extrait le répertoire Git sans répertoire de travail et crée un répertoire spécifique pour l’accueillir. | ||
Ligne 20: | Ligne 37: | ||
À présent que vous avez une copie nue de votre dépôt, il ne reste plus qu’à la placer sur un serveur et à régler les protocoles. Supposons que vous avez mis en place un serveur nommé git.exemple.com auquel vous avez accès par SSH et que vous souhaitez stocker vos dépôts Git dans le répertoire /srv/git. En supposant que /srv/git existe, vous pouvez mettre en place votre dépôt en copiant le dépôt nu : | À présent que vous avez une copie nue de votre dépôt, il ne reste plus qu’à la placer sur un serveur et à régler les protocoles. Supposons que vous avez mis en place un serveur nommé git.exemple.com auquel vous avez accès par SSH et que vous souhaitez stocker vos dépôts Git dans le répertoire /srv/git. En supposant que /srv/git existe, vous pouvez mettre en place votre dépôt en copiant le dépôt nu : | ||
+ | <code lang=" | ||
$ scp -r mon_projet.git utilisateur@git.exemple.com:/ | $ scp -r mon_projet.git utilisateur@git.exemple.com:/ | ||
+ | </ | ||
À partir de maintenant, tous les autres utilisateurs disposant d’un accès SSH au serveur et ayant un accès en lecture seule au répertoire /srv/git peuvent cloner votre dépôt en lançant la commande : | À partir de maintenant, tous les autres utilisateurs disposant d’un accès SSH au serveur et ayant un accès en lecture seule au répertoire /srv/git peuvent cloner votre dépôt en lançant la commande : | ||
+ | <code lang=" | ||
$ git clone utilisateur@git.exemple.com:/ | $ git clone utilisateur@git.exemple.com:/ | ||
+ | </ | ||
Si un utilisateur se connecte via SSH au serveur et a accès en écriture au répertoire / | Si un utilisateur se connecte via SSH au serveur et a accès en écriture au répertoire / | ||
Git ajoutera automatiquement les droits de groupe en écriture à un dépôt si vous lancez la commande git init avec l’option --shared. | Git ajoutera automatiquement les droits de groupe en écriture à un dépôt si vous lancez la commande git init avec l’option --shared. | ||
+ | <code lang=" | ||
$ ssh utilisateur@git.exemple.com | $ ssh utilisateur@git.exemple.com | ||
$ cd / | $ cd / | ||
$ git init --bare --shared | $ git init --bare --shared | ||
+ | </ | ||
Vous voyez comme il est simple de prendre un dépôt Git, créer une version nue et la placer sur un serveur auquel vous et vos collaborateurs avez accès en SSH. Vous voilà prêts à collaborer sur le même projet. | Vous voyez comme il est simple de prendre un dépôt Git, créer une version nue et la placer sur un serveur auquel vous et vos collaborateurs avez accès en SSH. Vous voilà prêts à collaborer sur le même projet. | ||
Ligne 50: | Ligne 73: | ||
Une dernière méthode consiste à faire une authentification SSH auprès d’un serveur LDAP ou tout autre système d’authentification centralisé que vous utiliseriez déjà. Tant que chaque utilisateur peut accéder à un shell sur la machine, n’importe quel schéma d’authentification SSH devrait fonctionner. | Une dernière méthode consiste à faire une authentification SSH auprès d’un serveur LDAP ou tout autre système d’authentification centralisé que vous utiliseriez déjà. Tant que chaque utilisateur peut accéder à un shell sur la machine, n’importe quel schéma d’authentification SSH devrait fonctionner. | ||
+ | |||
+ | ===== Créer un dépôt vierge ===== | ||
+ | < | ||
+ | git init --bare test_repo.git | ||
+ | </ | ||
+ | |||
+ | ===== Basculer en " | ||
+ | Une fois qu'on a cloné localement le dépôt git vide, il faut basculer sur la branche master avant de pusher le premier fichier. | ||
+ | <WRAP center round info 100%> | ||
+ | == NOTE == | ||
+ | Il faut avoir créé un '' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | $> git push origin master | ||
+ | </ | ||
+ | |||
+ | ===== Récupérer les infos sur le dépôt utilisé ===== | ||
+ | <code bash> | ||
+ | git remote show origin | ||
+ | </ | ||
+ | <code bash> | ||
+ | git config --get remote.origin.url | ||
+ | </ | ||
+ | |||
+ | ===== Basculer sur master ===== | ||
+ | //(avant de faire le premier push)// | ||
+ | |||
+ | <code bash> | ||
+ | git push --set-upstream origin master | ||
+ | </ | ||
+ | |||
+ | ===== GIT via http ===== | ||
+ | <WRAP center round tip 100%> | ||
+ | == ERREUR " | ||
+ | Si un clone depuis http ne fonctionne pas (" | ||
+ | </ | ||
+ |