Skip to content

memo git

PhilippeLeroux edited this page Oct 9, 2018 · 4 revisions

Table of contents


Création d'un dépôt

cd ~/plescripts
git init
git add .
git config --global user.name "PhilippeLeroux"
git config --global user.email [email protected]
git commit -a -m "Création du dépôt"

Ajouter le dépôt sur GitHub

git remote add origin https://github.com/PhilippeLeroux/plescripts.git
git push -u origin master

Pour Ignorer des fichiers documentation GitHub

Réinitialiser un dépôt

cd ~/plescripts
rm -rf .git
git init
git config --global user.name "PhilippeLeroux"
git config --global user.email [email protected]
git add .
git commit -a -m "Reset repository"
git remote add origin https://github.com/PhilippeLeroux/plescripts.git
git push --force --set-upstream origin master

Pousser les commit locaux sur GitHub

Commande : `git push`

Corriger le message du dernier commit pousser sur GitHub

git commit --amend
git push -f

Annuler le dernier commit local

git reset HEAD~1

Annuler le dernier push

Si les modifications des fichiers doivent être conservées, faire une sauvegarde.

Le dernier commit à annuler : 6fce7aa3142c8952eabd5ec205638f5ebd5eb280

Le commit précédent : 1400d5f1d2ef4fd3efabe10713bb4c8e845f1ef3

git push origin +1400d5f1d2ef4fd3efabe10713bb4c8e845f1ef3^:master

git reset HEAD^ --hard

git push origin -f

Remarque : les modifications du dernier commit seront perdues, il faut donc copier les fichiers allieurs si on veut conserver les modifications.

Corriger le message de plusieurs commit

  • Premier cas : les commit n'ont pas été poussé sur GitHub.

    • Annuler le dernier commit : git reset --soft HEAD~1
    • Annuler les N derniers commit, ex N=3 : git reset --soft HEAD~3

    Les modifications effectuées sont conservées, il suffit de commiter de nouveau pour changer le message du commit.

  • Second cas : les commit sont sur le dépôt central et il n'y a pas de modifications locales.

    Annulation :

    git rebase -i HEAD^ ou git rebase -i HEAD~N ou N est le nombre de commit à modifier.

    Suivre les indications, pour plus de détails voir ici

    Ensuite :

    git commit --amend
    git rebase --continue
    
  • Troisième cas : il y a des modifications locales.

    Il suffit de taper la commande git stash puis de suivre les instructions du second cas.

    Une fois terminé taper la commande git stash pop

Annuler les modifications apportées au fichier

Commande : git checkout le_fichier_qui_va

Supprimer un fichier de l'index mais pas sur le disque

Commande : git rm --cached

Afficher l'historique d'un fichier

Commande : git log -p filename

Restaurer un fichier depuis un commit

Afficher l'historique du fichier :

git log -p filename

Une fois le commit trouvé :

git checkout 939ed154632f8f049a76a92380d74c5b81df9e84 filename

Le fichier sera indexé pour validation, faire éventuellement un

git reset HEAD filename

Tenter de retrouver un fichier effacé

Faire une recherche du fichier effacé :

git log --diff-filter=D --summary

Une fois le commit trouvé restaurer le fichier :

git checkout c5d5d674521365ac93959578e0c35815f0f7a571 san/delete_db_lun.sh

ou

git checkout c5d5d674521365ac93959578e0c35815f0f7a571^ -- san/delete_db_lun.sh

mais rien ne marche :(*

Clone this wiki locally