Github
Contribuer à un projet : workflow
Fork et Push
Créer un fork du dépot en cliquant sur le bouton Fork de la page web du projet
# Clonez votre fork, son nom est origin par défaut git clone https://github.com/mon_nom/projet.git # Ajoutez le dépôt du mainteneur du projet git remote add upstream https://github.com/mainteneur/projet.git # Créez une branche locale pour chaque développement et basculer dans cette branche pour effectuer les modifications git checkout -b NouveauDev # Commiter les modification sur la branche locale NouveauDev # Pousser les modifications de la branche locale NouveauDev vers le dépôt origin # ce qui aura pour effet de créer une branche origin/NouveauDev sur le dépôt distant origin git push origin NouveauDev |
Pull request
Notifiez le mainteneur du projet d'une modification pour qu'il la fusionne :
Allez sur la page web du fork du projet → branches → New pull request
Une seule pull request par branche. C'est pourquoi il est utile de faire une branche pour chaque développement. |
Utiliser les modifications des Pull requests
Chaque nouvelle fonctionnalité a été développée sur une nouvelle branche, car chaque Pull request est associé à une branche.
En attendant que les Pull requests soit acceptées, on aimerait profiter de ces nouvelles fonctionnalités fraîchement développées.
# création d'une nouvelle branche à partir de master qui contiendra toutes les modifications des Pull requests git checkout -b AllDevPullRequest master # fusionner les branches des Pull requests dans AllDevPullRequest git merge BranchPullRequest1 # astuce: fusion en avance rapide (fast-forward merge) de BranchPullRequest1 dans AllDevPullRequest # on a pas besoin de basculer sur AllDevPullRequest pour faire cette fusion git fetch . BranchPullRequest1:AllDevPullRequest # mettre à jour AllDevPullRequest par rapport à upstream/master git fetch upstream git rebase upstream/master AllDevPullRequest |
Pull request acceptée
Une fois la Pull request fusionnée dans le dépôt mainteneur/master
# se positionner sur le dépôt local (branche master) git checkout master # mettre à jour le dépôt local (branche master) avec les modification du dépôt du mainteneur (branche upstream) git pull upstream master # mettre à jour le dépôt fork (branche origin) avec les modification du dépôt local (branche master) git push --tags origin master # supprimer la branche locale NouveauDev git branch -d NouveauDev # supprimer la branche NouveauDev du dépôt origin git push origin :NouveauDev |
Mettre à jour origin par rapport à upstream
# bascule sur la branche master git checkout master # rebase de upstream/master dans la branche courante (master) git rebase upstream/master # push les changements de la branche courante (master) vers origin/master git push origin master |
Créez un dépôt
Cliquez sur le bouton Create a new repo situé en haut à droite de la page de votre compte GitHub.
# Liez un dossier Git à un dépôt distant git remote add origin https://github.com/Utilisateur/Projet.git |
Supprimer un dépôt
Se rendre sur la page du dépôt → Settings → Delete this repository
GitHub Flavored Markdown pour les fichiers md
# Titre 1 ## Titre 2 Titre 1 ======== Titre 2 -------- [Texte du lien](http://url.fr) ![alt text](http://url.gif "Tooltip text") <user@email.fr> * puce 1 * puce 1.1 avec tabulation * puce 2 *Texte italique* **Texte gras** `code` ```python code python ``` |
Configuration pour GitHub
Vérifiez que user.name et user.email ont bien été enregistrés.
Avec le même email que celui du compte GitHub.
# Mise en cache du mot de passe pour 15 mn pour éviter de le retaper à chaque échange avec le serveur git config --global credential.helper cache |
Ne plus autoriser l'accès à une OAuth Apps
Menu déroulant en haut à droite à côté de l’icône de profile → Settings → Authorized OAuth Apps
Configuration
Changing the default branch
- Settings → General → Default branch
Default reviewers / CODEOWNERS
.github/CODEOWNERS |
* @Team1 @User1 |
When a pull request is ready for review, code owners are automatically notified.
Branch protection rules
- Require a pull request before merging
- Require approvals (define the number of approvals required)
- Dismiss stale pull request approvals when new commits are pushed
- Require review from Code Owners
- Allow specified actors to bypass required pull requests
- Require approval of the most recent reviewable push
- Require conversation resolution before merging
Automatically delete head branches
After pull requests are merged, you can have head branches deleted automatically.
- General → Pull Reequests