Aller au contenu

Git basic

C'est quoi GIT?#

Git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre et gratuit, créé en 2005 par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. Le principal contributeur actuel de Git, et ce depuis plus de 16 ans, est Junio C Hamano.

Depuis les années 2010, il s’agit du logiciel de gestion de versions le plus populaire dans le développement logiciel et web, qui est utilisé par des dizaines de millions de personnes, sur tous les environnements (Windows, Mac, Linux)3. Git est aussi le système à la base du célèbre site web GitHub, le plus important hébergeur de code informatique. source Wikipédia

C'est quoi GitHub ?#

GitHub (/ɡɪthʌb/, entreprise GitHub, Inc.) est un service web d'hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git. Ce site est développé en Ruby on Rails et Erlang par Chris Wanstrath, PJ Hyett et Tom Preston-Werner. GitHub propose des comptes professionnels payants, ainsi que des comptes gratuits pour les projets de logiciels libres.

Le site assure également un contrôle d'accès et des fonctionnalités destinées à la collaboration comme le suivi des bugs, les demandes de fonctionnalités, la gestion de tâches et un wiki pour chaque projet. Le site est devenu le plus important dépôt de code au monde, utilisé comme dépôt public de projets libres ou dépôt privé d'entreprises.

En 2018, GitHub est acquis par Microsoft pour 7,5 milliards de dollars. source Wikipédia

Installation de Git#

Cheatsheet pour le commandes

Projet: Créer un nouveau ou Copier (Cloner) un existant#

Bash
1
2
3
4
5
6
7
8
# Pour creer un nouveau
git init

# Copier un existant
git clone username@host:/path/to/repository

# Copier avec un access token
git clone https://<access_token>@<repository_url>

Creer un nouvelle branche#

  • nom de la branche: feature-1
Bash
# Pour s'assurer de partir du main a jour
git fetch
git checkout main
git pull --tags origin main

# Creer la branche
git branch feature-1

# Se placer dans cette branche
git checkout feature-1

# Mettre une copie au serveur
git push origin feature-1:feature-1

Sauvegader un changement et l'envoyer au serveur#

Bash
1
2
3
4
5
6
7
8
git fetch
git status # Voir ce qui n'est pas sauver


# git add <filename> or git add *

git commit -am "message sur les modifications"
git push  # ou git push origin feature-1:feature-1

Synchroniser une branche avec le main (branche principale)#

Nom de la branche: feature-1

Bash
1
2
3
4
5
git fetch
git checkout main
git pull --tags origin main
git checkout feature-1
git merge main
OU Pour seulement mettre à jour la branche active
Bash
git fetch
git pull --tags origin main

Utilisation de AWS CodeCommit#

Bash
1
2
3
4
5
# Install AWS code commit utility
pip install git-remote-codecommit

# Clone repo from Code commit
git clone codecommit::ca-central-1://[profile]@[repo-name]

Retour a zero#

Bash
# Discard all local change
git reset --hard

Effacer toutes les branches local, qui ne sont pas sur l'origine#

Bash
git fetch --prune && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -d

Créer un nouveau Tag#

Bash
git tag -a 2024-09-27 -m "version 2024-09-27"
git push --tags