Table des matières
Fonctionnalités
Personal access token
Pour pouvoir pousser sur un dépôt en utilisant un token plutôt que le mot de passe du site, il faut :
- Générer le token dans les settings de l'utilisateur,
- Créer un nouveau token avec les droits :
read:org,repo,user:email,workflow(si le dépôt contient un dossier.workflow), - Noter la clé,
- Puis, au moment de faire un
push, mettre le nom d'utilisateur puis le token (pas le mot de passe de connexion de github). Il faut aussi faire attention que l'adresse depushest bien enhttps://et pas engit://.
Pull request
Il existe 3 méthodes pour merger un pull request.
Dans les exemples ci-dessous, il y a deux commits dans la pull request et la pull request est en tard d'un commit sur la branche principale.
Merge commit
Le merge commit va garder tous les commits dans la branche externe (même si elle est supprimée) et simplement créer un commit pour réunir la branche de la pull request et la branche principale.
- Commande git
git merge --no-ff branch
- Interface de sélection
- Personnalisation du commit de merge
- Graphique des commits après la suppression de la branche de pull request
La bifurcation est conservée.
- Graphique des commits de la branche principale par GitHub
- Blame d'un fichier après fusion
L'historique n'est pas pollué par le commit de fusion.
Squash merge
Tous les commits de la pull vont être fusionnés dans un nouveau commit dans la branche principale.
- Commande git
git merge --squash branch git commit -m "message"
- Interface de sélection
- Personnalisation du commit équivalent
- Graphique des commits après le merge
Les deux branches restent indépendantes
- Graphique des commits dans la branche principale
Il y a deux noms : celui qui fait la pull request et celui qui l'a mergée.
- Graphique des commits dans la pull request
Rebase merge
Tous les commits de la pull vont être dupliqués / rebasés dans la branche principale.
- Commande git
Attention, hash1 n'est pas inclus.
git cherry-pick hash1..hash2
- Interface de sélection
- Validation de la fusion
- Graphique des commits après le merge
Les deux branches restent indépendantes.
- Graphique des commits dans la branche principale
Il y a deux noms dans les commits importés depuis la pull request : celui qui fait la pull request et celui qui l'a mergée.
- Graphique des commits dans la pull request.
API
Forks
Cloner tous les forks pour les lire dans un logiciel graphique.
#!/usr/bin/env bash OWNER="githubuser0xFFFF" REPO="Qt-Advanced-Docking-System" PAGE=1 PER_PAGE=100 mkdir -p $REPO cd $REPO || exit git init -q while true; do DATA=$(curl -s "https://api.github.com/repos/$OWNER/$REPO/forks?per_page=$PER_PAGE&page=$PAGE") COUNT=$(echo "$DATA" | jq 'length') [ "$COUNT" -eq 0 ] && break echo "$DATA" | jq -r '.[].url' | while read -r APIURL; do USER=$(echo "$APIURL" | cut -d'/' -f5) GITURL="https://github.com/${USER}/${REPO}.git" git remote add "$USER" "$GITURL" 2>/dev/null || continue GIT_TERMINAL_PROMPT=0 git fetch "$USER" -q done PAGE=$((PAGE+1)) done

