“JE VAIS VOUS LE DIRE FRANCHEMENT : Git est exaspérant.
Attendez ! Ne partez pas tout de suite. Oui, Git est insupportable. Mais il est également indispensable”1)
Git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds, le créateur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2.
Une très intéressante contribution du journaliste scientifique Clay Shirky, Comment internet transformera un jour le gouvernement?, qui évoque git et la possibilité (toute théorique) de l'utiliser comme outil législatif et budgétaire: https://www.ted.com/talks/clay_shirky_how_the_internet_will_one_day_transform_government
sudo apt-get install git-core gitk
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global user.name "PSEUDO"
git config --global user.email EMAIL
vi ~/.gitconfig
[color]
diff = auto
status = auto
branch = auto
[user]
name = johndoe
email = johndoe@coincoin.org
[alias]
ci = commit
co = checkout
st = status
br = branch
Mettre les clés ssh nécessaires puis sur chaque client:
git config --global user.name "<username goes here>"
sur le serveur avec le dépôt
git config receive.denyCurrentBranch ignore
Les commandes de base
fork then
git remote add origin git@gitlab.com:USER/PROJECT.git
git pull git@gitlab.com:USER/PROJECT.git git st git add... hg commit -m "comment" git push git@gitlab.com:USER/PROJECT.git https://gitlab.com/zpartakov/vamosAcomer git log #details d'un commit git show 0943dce3be9c4a0f21c397f62ea18f78a4bcea26
lister les branches:
git branch
ensuite changer de branche avec:
git checkout <existing_branch>
Revenir en arrière d'un commit
git reset --hard HEAD^
Revenir en arrière sur un commit spécifique
git reset --hard 13e8d052383d96c1cdfef188ede3dd4fdffd53ad
ou 13e8d052383d96c1cdfef188ede3dd4fdffd53ad est le numéro du commit
on vient de faire le reset supra et on se rend compte que c'est une grosse c…!
utiliser reflog pour trouver le bon commit:
radeff@radeff-lenovo:~/recettes git reflog eeb6cd2 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to HEAD^ c8fd577 HEAD@{1}: commit: minor eeb6cd2 (HEAD -> master, origin/master, origin/HEAD) HEAD@{2}: commit: restaurants dd3b660 HEAD@{3}: clone: from REPOSITORY:~/www/intranet/recettes
ici, c'est donc le c8fd577 qu'on va restaurer avec cherry-pick
radeff@radeff-lenovo:~/recettes git cherry-pick c8fd577 [master b95febf] minor Date: Thu Dec 4 06:33:13 2025 +0100 13 files changed, 683 insertions(+), 92 deletions(-) delete mode 100644 bug/restaurants/views/layout/app.php
ouf! petite sueur passée…
git cherry-pick db6f662 (remplacer db6f662 par le bon commit!)
https://dev.to/aurelievache/git-par-lexemple-cherie-ca-va-cherry-picker--37c8
git log --patch | less +/searching_string
chercher les revisions d'un auteur “Jon”
git log --author=Jon git grep [motifDeRecherche]
si on veut chercher ds ttes les versions
git log -p grep ...
Clone project:
git clone git@example.com:project-name.git
Create branch with your feature:
git checkout -b $feature_name
Write code. Commit changes:
git commit -am "My feature is ready"
Push your branch to Git:
git push origin $feature_name
doc gitlab: https://docs.gitlab.com/ee/gitlab-basics/feature_branch_workflow.html#feature-branch-workflow
git clone -b my-branch https://git@gitlab.com/username/myproject.git
exemple, cloner la branche stable de limesurvey et la mettre à jour
git clone -b 2.06lts git@gitlab.com:LimeSurvey/LimeSurvey.git git pull git@gitlab.com:LimeSurvey/LimeSurvey.git 2.06lts
Si vous avez un peu suivi le débat en informatique on a plus le droit de dire master et slave paske c'est mal. Donc maintenant faut dire main et… en fait je sais pas: soumis? Je crois c'est secondary
En tout cas, certains providers git exigent maintenant qu'on appelle la branche principale master.
Comment changer: https://andycostanza.gitlab.io/blog/fr/posts/2022/renommer_master_en_main_avec_git/
Thks, Andy C.!
git filter-branch --force --index-filter \ 'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \ --prune-empty --tag-name-filter cat -- --all
git commit git push origin --force --all
Pour avoir tous les sous-modules d'un repository git
git submodule update --init --recursive
Sometimes you need to clone a Git repo with a different SSH key.: https://ralphjsmit.com/git-custom-ssh-key
Versions paquet zip/tarball to download with source code
git tag -a v1.0 #changer pour la bonne version git push --tags [optional git repo]]
des clients graphiques pour git
un plugin bien pratique pour VScodium aka Codium
gitcraken, un client graphique simple à configurer pour voir vos projets git
source: http://www.gitkraken.com/
qgit version graphique
Version web libre de git qui est, lui, dans la prison CroSoft. Je n'en reviens toujours pas du nombre de librisite qui ne sont pas passés de gitHub à gitLab mais c'est comme ça
Github a été racheté par MS. C'est donc mal. On peut facilement migrer ses dépôts sur gitlab, qui est libre et opensource: Switching from GitHub to GitLab.
Et si vous voulez qu'on vous voie toujours sur windaube, ben suffit de laisser votre repo ouvert et de pointer depuis sur vos repos ouverts.
GitHub provides some official RSS feeds officially:
Repo releases: https://github.com/:owner/:repo/releases.atom Repo commits: https://github.com/:owner/:repo/commits.atom User activities: https://github.com/:user.atom Private feed: https://github.com/:user.private.atom?token=:secret (You can find Subscribe to your news feed in dashboard page after login)
Credits: https://stackoverflow.com/questions/7353538/setting-up-a-github-commit-rss-feed#7353586