Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
informatique:scm:git [2010/02/11 22:39] – Reprise ancien Wiki bn8 | informatique:scm:git [2024/08/22 17:13] (Version actuelle) – bn8 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== Git ====== |
- | ===== Installation | + | |
+ | ===== Un serveur Git ===== | ||
+ | |||
+ | ==== Installation | ||
aptitude install git-core | aptitude install git-core | ||
- | ===== Création/ | + | ==== Création/ |
Il y a certainement mieux pour initialiser mais bon. Voilà une méthode de A-Z d' | Il y a certainement mieux pour initialiser mais bon. Voilà une méthode de A-Z d' | ||
* En local sur un client : | * En local sur un client : | ||
Ligne 38: | Ligne 41: | ||
- | ===== Mise en place d'un accès via git-daemon | + | ==== Mise en place d'un accès via git-daemon ==== |
* Éditer le fichier /// | * Éditer le fichier /// | ||
Ligne 55: | Ligne 58: | ||
* Restart openbsd-inetd : /// | * Restart openbsd-inetd : /// | ||
- | ====== Accès au serveur ====== | + | === Avec git-daemon-run |
- | ===== Renseigner son profil | + | |
- | git config --global user.email " | + | |
- | git config --global user.name "User Name" | + | |
- | **Remarque | + | |
+ | | ||
+ | | ||
+ | exec 2>& | ||
+ | echo ' | ||
+ | exec chpst -ugit \ | ||
+ | "$(git --exec-path)"/ | ||
+ | --base-path=/ | ||
- | ===== Clone ===== | + | Pour contrôler le service : |
- | * Via Git (Lecture~) | + | |
- | git clone git:// | + | |
- | + | * Arrêt | |
- | * Via SSH (Lecture/Écriture) | + | * Redémarrage : < |
- | git clone ssh://toto@srv/home/toto/public_git/monprojet monprojet_local | + | Suivie des logs dans le fichier |
- | **monprojet_local** : Chemin local du repo | ||
- | ===== Utilisation courante ===== | ||
- | * Connaitre le statut des fichiers modifié/ | ||
- | | + | ===== Accès au serveur ===== |
+ | ==== Renseigner son profil | ||
+ | <code bash>git config --global user.email " | ||
+ | git config --global user.name "User Name"</ | ||
- | | + | **Remarque : ** Les infos sont stockées dans // |
- | | + | ==== Clone ==== |
+ | * Via protocole Git : <code bash>git clone git:// | ||
+ | |||
+ | * Via SSH : <code bash>git clone ssh:// | ||
- | | + | **monprojet_local** : Chemin local du repo |
- | git rm file1 | + | ==== Track d'une branche distante ==== |
- | * Bouger/renomer un fichier | + | <code bash>git checkout -b prod origin/prod</ |
- | git mv file-old file-new | ||
- | | + | ==== Utilisation courante ==== |
+ | | ||
- | git commit [-a] | + | |
- | * Envoyer ses commits sur le serveur remote | + | * Supprimer un fichier : <code bash>git rm file1</ |
- | git push | + | |
- | * Récupérer les derniers commits des autres dans son repos | + | * Commiter (local) : <code bash>git commit [-a]</ |
- | git pull | + | |
- | **Remarque | + | |
+ | |||
+ | | ||
+ | - Faire les modifications souhaitées et les ajouter avec la commande | ||
+ | - Commiter en modifiant le dernier commit : <code bash>git commit --amend</code> | ||
- | * Voir la liste des commits : | + | * Modifier un commit spécifique (non propagé) : |
+ | * **Via //" | ||
+ | - commiter vos modifications à fusionner dans le précédent commit via la commande suivante en indiquant l'ID du commit à modifier <code bash>git commit --fixup=38b184620e5d0da47de4c6d7ed81e807af479fb2</ | ||
+ | - exécuter ensuite la commande suivante en indiquant l'ID du commit à modifier (attention au '' | ||
+ | * **Via une édition manuelle :** | ||
+ | - exécuter la commande suivante en indiquant l'ID du commit à modifier (attention au '' | ||
+ | - Dans l' | ||
+ | - Effectuer la modification souhaitez puis commiter à l'aide de la commande suivante : <code bash>git commit --all --amend --no-edit</ | ||
+ | - Vous pouvez constater que votre commit à bien été modifié à l'aide de la commande '' | ||
+ | - Pour revenir à votre //working tree// intégrant vos commits | ||
- | git log | + | |
+ | * Supprimer le dernier commit (en **suppriant** les modifications) : <code bash>git reset --hard HEAD^</ | ||
+ | |||
+ | **Remarque :** C'est la même chose qu'un //git fetch// puis un //git merge// | ||
+ | |||
+ | * Voir la liste des commits : <code bash>git log</ | ||
**Remarque : ** On peut rajouter un nom de fichier pour voir seulement les commits impactant ce fichier. | **Remarque : ** On peut rajouter un nom de fichier pour voir seulement les commits impactant ce fichier. | ||
+ | |||
+ | * Générer des patchs à partir de vos commits : | ||
+ | * repérer dans '' | ||
+ | * lancer la commande suivante : <code bash>git format-patch [ID commit précédent]</ | ||
+ | * Appliquer un patch sans comiter : <code bash>git apply [patch]</ | ||
+ | * Appliquer un patch et le comiter avec les informations fournis dans celui-ci : <code bash>git am --signoff -k < [patch]</ | ||
+ | **Remarques :** | ||
+ | * le paramètre '' | ||
+ | * le paramètre '' |