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)

<user@email.fr>
* puce 1
* puce 1.1 avec tabulation
* puce 2
*Texte italique*
**Texte gras**
`code`
```python
code python
```
|
Authentication and Configuration
- Generate a PAT: Github → top-right icon → Settings → bottom left Developer settings → Personal access tokens → Fine-grained tokens
- Edit the git config to add the username and PAT in the remote url
.git/config |
; local git config
[remote "origin"]
url = https://USERNAME:PAT@github.com/ACCOUNT/REPOSITORY
; usefull only for the author commit
[user]
name = nicolas
email = nicolas@bananeatomic.fr
|
Cache
Credentials are stored in cache:
- on Windows, they are stored in the Credential Manager → Windows Credentials
Maybe deprecated
# 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 Requests
Personal Access Token
- Personal Icon (top-right) → Settings
- Developer Settings (left side menu) → Personal Access Tokens (left side menu)