Fonctionnement Git &Github - ch-cbna/geonature GitHub Wiki
Règles Geontaure
- Commit en anglais : "<Feat/Fix> <Nom_branche> <#NumTicket> <label : bug/enhancement/frontend/backend> (<close #NumTicket>)"
- Code en anglais
- Ticket en français
Branches
Master (Main) = Fichiers applicatifs de la dernière version stable Develop = FIchiers applicatifs des développements en cours
Fonctionnalités
Merge = associer les développements d'une branche à la branche Master (Main) Squash = merge deux commits Commit = Title + Body + Label
- Title = Feat (Feature) / Fix (Debug) / Wip (Work In Progress) + Nom branche
- Body = Numéro ticket
- Label = Bug/Enchancement/Frontend/Backend
Projets
- Backlog Plus prioritaire en tête de liste. Traiter "gros cailloux" en priorité.
- To do
- In progress
- Done
Récupérer sa clé SSH pour pouvoir se connecter à Github en local
- Dans le Terminal :
cat ~/.ssh/id_rsa.pub
- Copier cette clé publique
- Coller dans l'espace réservé sur Github : Github --> Profil --> Settings --> SSH keys --> New SSH Key
Github CLI
Pour pouvoir accéder à des commandes plus avancées qu'avec Git, en ligne de commande https://cli.github.com/manual/index
Une fois installé, Github Cli permet notamment de faire des pull request (gh pr) depuis un terminal, alors que cette action n'est pas faisable avec Git (que sur l'interface graphique de Github).
Pour l'installer :
deb https://cli.github.com/packages buster main
sudo wget -O /usr/share/keyrings/riot-im-archive-keyring.gpg https://packages.riot.im/debian/riot-im-archive-keyring.gpg
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/riot-im-archive-keyring.gpg] https://packages.riot.im/debian/ default main" | sudo tee /etc/apt/sources.list.d/riot-im.list
vi /etc/apt/sources.list.d/github-cli.list
apt install gh
Fichiers .sample
Ces fichiers sont des fichiers d'exemple, et ils ne sont pas executés, à moins de retirer le ".sample".
Dossier .gitignore
Git considère chaque fichier de votre copie de travail comme appartenant à l'un des trois types suivants :
- tracké : un fichier qui a été stagé ou commité au préalable
- non tracké : un fichier qui n'a pas été stagé ou commité
- ignoré : un fichier que Git a explicitement reçu pour instruction d'ignorer.
Les fichiers ignorés sont trackés dans un fichier spécial appelé .gitignore qui est enregistré à la racine de votre répertoire.
Commandes Git dans le terminal
Commandes | Action |
---|---|
git config --global user.email [email protected] | Préférences utilisateur |
git init | Créer un nouveau dépôt git |
gs / git status | Affiche la liste des fichiers modifiés + ceux qui doivent être ajoutés ou validés |
git add temp.txt | Ajouter des fichiers à l'index |
git clone /chemin/vers/dépôt | Copier en local un dépôt |
git switch -c <nom-branche> | Créer une branche |
git switch <nom-branche> | Passer d’une branche à une autre |
git branch | Répertorier toutes les branches présentes dans le dépôt |
git branch -d <nom-branche> | Supprimer une branche |
git merge <nom-branche> | Fusionner une branche dans la branche active |
git diff | Enumérer tous les conflits actuels |
git diff --base <nom-fichier> | Lister les conflits |
git diff <branche-source> <branche-cible> | Afficher les conflits entre les branches à fusionner avant de les fusionner |
git lg | Lister toutes les modifications |
git commit –m “Description du commit” | Valider les modifications apportées au HEAD. Tout commit ne se fera pas dans le dépôt distant. |
git pull | Fusionner toutes les modifications présentes sur le dépôt distant dans le répertoire de travail local |
git push origin master/develop | Envoie les modifications locales apportées à la branche principale associée |
git fetch origin | Extraire tous les fichiers du dépôt distant qui ne sont pas actuellement dans le répertoire de travail local |
git rm nomfichier.txt | Supprimer des fichiers de l’index et du répertoire de travail |
git reset --hard HEAD | Réinitialiser l’index et le répertoire de travail à l’état du dernier commit |