Make sure you understand the basics
Idées
git stash, git cherry-pick, git rebase, git submodule
.gitignore
# Ignore a folder
data/
.ipynb_checkpoints/
__pycache__/
# Ignore all npy files
*.npy
*.pkl
*.p
*.pyc
# Ignore a particular file
my_file.png
Lister les branches
Créer une branche et se rendre dessus
git branch
git checkout -b nom_de_la_branche
Créer une branche
git branch nom_de_la_branche
Fusionner la branche "dev" vers la branche actuelle
git merge dev
Synchroniser une nouvelle branche avec le serveur
git push -u origin nom_de_la_branche
git reset
git checkout -- mon_fichier
git revert
git commit --amend
Modifier le dernier commit
Enlever les modifications de la zone de staging
Annuler les changements du dernier commit
Abandonner les changements d'un fichier
git reset --hard origin master
# Hash example (using 'git log --oneline')
# short version: 97d43dc
# long version: 97d43dcd220ce077e42e30fd8864372251ac18e8
git checkout hash_du_commit
# Go back to current commit
git checkout branch_name
git reset hash_du_commit
Abandonner les modifications locales
Revenir à un état (commit) précédent (temporaire)
Défaire tous les commits jusqu'à un état précis
git tag
List all tags
Create a new tag
git tag -a v1.0 -m "First stable version"
git push origin --tags
Sync local tags with server
Git diff magic