# GIT git clone git@gitlab.com:nizukameha/first-git . Le . permet de cloner sans créer de dossier **git status** Permet de voir les nouveaux fichiers et les fichiers modifiés. Ceux qui sont en attente de commit et ceux qui n'ont pas été ajouté **git add** Les fichiers qui ont été "add" sont en attente de commit **git commit -m** « Commentaire concernant le changement » **git log** : Pour voir les derniers commit **git checkout e202e6b281c36588fa391985a95591f696343a01** (numero du commit) : Pour revenir a un précédent commit **git checkout main** : Pour revenir au dernier commit # DANS LE CAS OU ON EST OBLIGÉ DE CRÉER UN DEPOT LOCAL AVANT DE LE LIER À UN DEPOT DISTANT **git init** : Initialise un dépot local **git remote add origin lienDuDépotDistant** : Permet d’ajouter un dépot distant a un dépot local **git pull origin main —rebase** : Permet de push un dépot local vers un dépot distant qui possede déja des fichiers # EN CAS DE CONFLIT **git checkout —ours fichier** : On regle le conflit en remplaçant le fichier distant par le notre **git checkout —theirs fichier** : On regle le conflit en remplaçant notre fichier par le fichier distant **git merge abort** : On annule le pull qui pose probleme # BRANCH **git branch nomDeLaBranche** : Créer une nouvelle branche **git checkout nomDeLaBranche** : Permet de se positionner sur une autre branche **git merge branch1 branch2** : Permet de fusionner deux branches. branch2 viendra a la suite de branch1 /!\ En suivant les branches on aura une trace des merges ![](https://i.imgur.com/5kwDMbE.png) **git rebase branch1 branch2** : Permet de fusionner deux branches en ajoutant de façon séquentiel les commit de la 2eme dans la 1ere. Apres le rebase on aura l’impression qu’il n’y a toujours eu qu’une seule branche. /!\ L'historique des commit sera modifié et peut-etre moins clair. ![](https://i.imgur.com/NDreO4D.png) # HEAD C’est le nom symbolique qui fait référence au commit le plus récent **git checkout numeroDuCommit** : On détache le HEAD de la branche pour le fixer a un commit **git checkout main^** : Permet de déplacer le HEAD au commit précédent de la branche main **git checkout main^^** : Permet de déplacer le HEAD 2 commit en arrière de la branche main **git checkout HEAD^** : Permet de déplace le HEAD au commit précedent de la branche main. Il faut avant avoir détaché le HEAD de sa branche avec git checkout numeroDuCommit **git checkout HEAD~4** : Permet de remonter 4 commit en arrière **git branch -f main HEAD~3** : Déplace une branche 3 commit en arrière # ANNULER DES CHANGEMENTS **git reset HEAD~1** : Permet de revenir 1 commit en arrière (ne fonctionne que en local) **git revert nomDeLaBranche** : Comme reset mais pour les dépôts distants # REMOTE (Dépot distant) **git fetch** : Télécharge les commit du dépôt distant qui ne sont pas dans le dépôt local & Met à jour les branches du dépôt distant /!\ Git fetch ne change rien au dépot local **git pull** : En réalité c'est 2 commandes en une ! Il s'agit de git fetch & git merge. La commande va donc télécharger les commit du dépôt distant et mettre à jour notre dépot local ###### tags: `Général` `Git` **Changer le dépot distant :** git remote set-url origin *lienDuNouveauDépotDistant* git commit/add/push un git rebase peut-etre neccéssaire avant de push (dans le cas ou on aurait déja un commit) **OU** git pull --allow-unrelated-histories **PUIS** git push