Outils pour utilisateurs

Outils du site


git

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édentesRévision précédente
Prochaine révision
Révision précédente
git [2020/01/20 13:23] – [Modifier un commit] simongit [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1
Ligne 1: Ligne 1:
-====== La commande "git" ====== 
  
-La page de [[man de git]] et la page [[https://framagit.org/help/|aide de FramaGit]]. 
-===== Configuration globale ===== 
-On peut rentrer son nom, son mail et demander la coloration automatique : 
-<code bash> 
-$ git config --global user.name "Simon Lefort" 
-$ git config --global user.email "mail@domain.be" 
-$ git config --global color.ui auto 
-</code> 
- 
-On peut vérifier les informations que l'on a entrées : 
-<code bash> 
-$ git config --global --list 
-user.name=Simon Lefort 
-user.email=mai@domain.be 
-color.ui=auto 
-</code> 
-===== Clé SSH ===== 
-GitLab permet de travailler avec des clés SSH, ce qui permet d'envoyer les modifications sans devoir taper une mot de passe à chaque fois. (Il suffit de déverouiller le trousseau de clé à la première utilisation.) 
- 
-Il faut tout d'abord voir si on a une clé existante : 
-<code bash> 
-$ cat ~/.ssh/id_rsa.pub 
-ssh-rsa AAAA(...) simon@ordi 
-</code> 
- 
-Si nous n'avons pas encore de clé, on en génère une (voir [[ssh]]). Si nous utilisont déjà [[ssh]] et que nous avons une clé, nous pouvons passer à l'étape suivante. 
- 
-Pour ajouter une clé à GitLab, on doit se rendre sur la page [[https://framagit.org/profile|User Settings]] > [[https://framagit.org/profile/keys|SSH Keys]]. Il faut copier la clé **publique** dans la case appropriée. Soit manuellement soit via [[xclip]] : 
-<code bash> 
-$ xclip -sel clip < ~/.ssh/id_rsa.pub 
-</code> 
-{{ ::gitlab3.png?400 |}} 
- 
-===== Créer un repository ===== 
-==== À partir de GitLab ==== 
-Appuyer sur le bouton "New Project" : 
-{{ ::gitlab1.png?400 |}} 
- 
-Remplir les informations de base (nom du projet, description, visibilité, ...) : 
-{{ ::gitlab2.png?400 |}} 
- 
-Cloner le dépôt depuis l'ordinateur local : 
-<code bash>$ git clone git@framagit.org:(...).git 
-Clonage dans 'dossier'...</code> 
- 
-==== À partir de son ordinateur local ==== 
-Pas encore trouvé comment créer le dépôt depuis l'ordinateur local et puis l'envoyer vers GitLab. 
- 
-===== Utilisation basique ===== 
-La première chose à faire, en local, c'est de cloner le dépôt. On peut le faire via l'adresse "git@..." ou via un lien "https://..." : 
-<code bash> 
-$ git clone git@framagit.org:simon.lefort/NOM-PROJET.git 
-$ git clone https://simon.lefort@framagit.org/simon.lefort/NOM-PROJET.git 
-</code> 
- 
-Aller sur la branche "master" : 
-<code bash> 
-$ git checkout master 
-Déjà sur 'master' 
-Votre branche est à jour avec 'origin/master'. 
-</code> 
- 
-Télécharger les derniers changements sur le dépôt, branche "master" : 
-<code bash> 
-$ git pull origin master 
-remote: Counting objects: 3, done. 
-remote: Compressing objects: 100% (3/3), done. 
-remote: Total 3 (delta 1), reused 0 (delta 0) 
-Dépaquetage des objets: 100% (3/3), fait. 
-Depuis framagit.org:simon.lefort/NOM-PROJET 
- * branch            master     -> FETCH_HEAD 
-   48f7290..10626aa  master     -> origin/master 
-Mise à jour 48f7290..10626aa 
-Fast-forward 
- README.md | 2 +- 
- 1 file changed, 1 insertion(+), 1 deletion(-) 
-</code> 
- 
-Une fois que le dossier local est bien à jour par rapport au dépôt distant, on peut commencer à modifier un/des fichier(s). Il est apparemment mieux de modifier un fichier par commit, pour simplifier les choses. 
-<code bash> 
-$ nvim README.md 
-$ git status 
-Sur la branche master 
-Votre branche est à jour avec 'origin/master'. 
-Modifications qui ne seront pas validées : 
-  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé) 
-  (utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail) 
- 
- modifié :         README.md 
- 
-aucune modification n'a été ajoutée à la validation (utilisez "git add" ou "git commit -a") 
-</code> 
- 
-Faire un "commit" (ajout au dépôt local) des fichiers modifiés avec un commentaire : 
-<code bash> 
-$ git commit -am "Update README.md" 
-[master b706f64] Update README.md 
- 1 file changed, 1 insertion(+) 
-</code> 
- 
-On peut faire la même chose en deux étapes. Tout d'abord en sélectionnant le fichier qu'on veut "commiter" puis en faisant le commit (Plus besoin de l'option "-a" dans ce cas!) : 
-<code bash> 
-$ git add README.md  
-$ git commit -m "Update README.md" 
-[master 4fcea35] Update README.md 
- 1 file changed, 1 insertion(+) 
-</code> 
- 
-On peut vérifier le statut et voir s'il y a ou non des différence entre le dépôt local et le dépôt distant: 
-<code bash> 
-$ git status 
-Sur la branche master 
-Votre branche est en avance sur 'origin/master' de 2 commits. 
-  (utilisez "git push" pour publier vos commits locaux) 
-nothing to commit, working tree clean 
-</code> 
- 
-<code bash> 
-$ git status 
-Sur la branche master 
-Votre branche est à jour avec 'origin/master'. 
-nothing to commit, working tree clean 
-</code> 
- 
-S'il y a des différences et que le dépôt local est en avance, on peut "pousser" celles-ci sur le dépôt distant : 
-<code bash> 
-$ git push origin master 
-Décompte des objets: 6, fait. 
-Delta compression using up to 4 threads. 
-Compression des objets: 100% (6/6), fait. 
-Écriture des objets: 100% (6/6), 640 bytes | 0 bytes/s, fait. 
-Total 6 (delta 2), reused 0 (delta 0) 
- 
-To framagit.org:simon.lefort/NOM-PROJET.git 
-   a7d5e52..4fcea35  master -> master 
-</code> 
- 
-Quand on travaille sur la branche principale, les options "origin" et "master" ne sont pas indispensables, on peut faire directement : 
-<code> 
-$ git push  
-Everything up-to-date 
-</code> 
- 
-==== Résumé ==== 
-Quand on commence à travailler :  
-<code bash> 
-$ cd /emplacement/depot/local 
-</code> 
- 
-On vérifie qu'on est  bien à jour : 
-<code bash> 
-$ git pull origin master 
-</code> 
- 
-Quand on crée de nouveaux fichiers et qu'on veut les ajouter simplement : 
-<code bash> 
-$ git add ./**/* 
-</code> 
- 
-On vérifie qu'ils ont bien été ajoutés : 
-<code bash> 
-$ git status 
-</code> 
- 
-On "commit" (ajout dans le dépôt local) : 
-<code bash> 
-$ git commit -am "Commentaire" 
-</code> 
- 
-On envoie sur le dépôt distant ([[:GitLab]]) : 
-<code bash> 
-$ git push origin master 
-</code> 
-===== Utilisation avancée ===== 
-Les commandes vues dans l'utilisation basique permettent de travailler seul et sur une seule branche. 
- 
-==== Ajouter plusieurs fichiers d'un coup ==== 
-J'ai créé plusieurs fichiers .ino dans des sous-répertoires et je voulais pouvoir les ajouter tous en une seule fois. Pour ajouter tous les fichier ".ino" : 
-<code bash> 
-$ git add ./**/*.ino 
-</code> 
- 
-Pour ajouter tous les fichiers : 
-<code bash> 
-$ git add ./**/* 
-</code> 
- 
-==== Modifier un commit ==== 
-On peut modifier le dernier commit avec l'option "amend" 
-<code bash> 
-$ git commit --amend 
-[feature/multiple-infra 9a443f1] blablablablablablabla 
- Date: Tue May 29 11:21:44 2018 +0200 
- 1 file changed, 4 insertions(+), 4 deletions(-) 
-</code> 
- 
-Idéalement, on ne change un commit qu'on a **pas encore envoyé sur le serveur**. 
-Il y a aussi cette commande qui permet de remonter dans l'historique des commits:  
- 
-<code bash> 
-$ git rebase --interactive 
-</code> 
-<WRAP center round alert 60%> 
-Attention: Cette commande peut faire des dégâts si elle est mal utilisée! 
-</WRAP> 
- 
-__source:__ [https://www.git-tower.com/learn/git/faq/edit-fix-commit-message|https://www.git-tower.com/learn/git/faq/edit-fix-commit-message] 
- 
-==== Modifier plusieurs commits ==== 
-Pour modifier, par exemple, les 7 derniers commits sur la branche en cours :  
-<code bash> 
-$ git rebase -i HEAD~7 -x "git commit --amend" 
-</code> 
- 
-__source:__ [https://stackoverflow.com/questions/4981126/how-to-amend-several-commits-in-git-to-change-author|https://stackoverflow.com/questions/4981126/how-to-amend-several-commits-in-git-to-change-author] 
-===== Sources ===== 
-  * [[https://fr.wikibooks.org/wiki/Git/Premiers_pas|Git/Premiers Pas (wikibooks.org)]] 
-  * [[https://bioinfo-fr.net/git-premiers-pas|Premiers pas avec git (bioinfo-fr.net)]] 
git.1579526625.txt.gz · Dernière modification : 2020/08/09 12:59 (modification externe)