Skip to content

Instantly share code, notes, and snippets.

@BabylonZeus
Last active March 5, 2019 08:01
Show Gist options
  • Save BabylonZeus/4143134 to your computer and use it in GitHub Desktop.
Save BabylonZeus/4143134 to your computer and use it in GitHub Desktop.
Git tips
A tout moment, pour savoir où on en est en local
git status
Récupérer un projet dans un nouveau dossier local et se positionner dans la branche develop
git clone ssh://[adresse_ip]:[port]/[path]
git checkout develop
git pull origin develop
En récurrent, pousser une modification locale vers le repository distant
git add ./chemin_vers_mon_fichier {ligne à passer pour chaque fichier à commiter}
git commit -m 'mon commentaire'
git pull --rebase origin develop {à refaire juste avant le push au cas où un autre développeur a poussé une màj entre-temps}
git push origin develop {s'assurer de la bonne compilation et exécution des tests (mvn clean install) avant de faire un push}
Pour régresser une modification locale et récupérer la version serveur en écrasant le fichier local
git checkout -- fichier
Pour mettre un dév de côté
git stash save toto ==> crée une sauvegarde locale nommée toto avec toutes les modifs en cours.
git pull --rebase origin develop ==> se met à jour
... ==> faire ce qu'il y a à faire
git stash pop {id} ==> restaure la sauvegarde en local en écrasant
| Pour connaître l'ID :
| git stash list
| l'ID ressemble à stash@{0} (tout ce texte en entier)
Pour voir le contenu d'un commit
git show d728b7e --name-only
où d728b7e est l'id du commit (glog ou git log --color --oneline --decorate --graph).
Pour lister les fichiers modifiés entre 2 commits donnés
git diff --name-only SHA1 SHA2
Fusion de branches develop vers deploy-dev
Se mettre en état "final" sur la branche develop, puis :
git checkout deploy-dev
git pull origin deploy-dev
git merge develop
git push origin deploy-dev
git checkout develop (pour se remettre dans la branche d'origine)
En cas de "Your branch is ahead of 'origin/develop' by x commits."
- retourner au niveau de 'origin/develop' avec : git reset --hard ed601bb {mettre le vrai sha1 en le récupérant de glog}
- se mettre à jour : git pull --rebase origin develop
- vérifier que le problème est toujours là : glog et gst
- faire un push : git push origin develop
==> Il ne devrait rien faire, mais il va positionner le origin/develop sur le HEAD.
Affichage de la liste des commits sous forme facilement lisible
git log --color --oneline --decorate --graph
Pour créer une branche à partir d'un commit donné
git branch branchname <sha1-of-commit>
ou :
git branch branchname HEADx où x est un nombre qui représente le nombre de commit à remonter depuis le HEAD.
Gestion des tags
- Récupérer les tags remote en local : git fetch --tags
- Se positionner sur un tag : git checkout nom_du_tag
- Se repositionner sur le dernier commit de la branche develop : git checkout develop
Remonter de quelques commits
- Pour supprimer les n derniers commit, tout en conservant les modifications en cours :
git reset --soft HEAD~n
- Pour supprimer les n derniers commit, mais en perdant les modifications en cours :
git reset --hard HEAD~n
- Si un push de ces commits avait été fait, et si aucun développeur parallèle n'a ajouté de commits :
git push origin HEAD --force
Ajouter des fichiers au dernier commit
git add <fichier>
git commit --amend
Pour se positionner sur une nouvelle branche "toto" distante qui n'existe pas localement
git fetch origin
git checkout -b toto origin/toto
Copier des commits vers la branche en cours
git cherry-pick sha1 sha2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment