Commandes GIT sur serveur en production
Les commandes suivantes peuvent être utilisé sur un serveur en production.
Dans le cas d’un déveleppement sur machine locale, utiliser des logiciels gratuits comme GIT DESKTOP / SourceTree.
Voici les deux commandes utilisés au quotidien:
Premier déploiement dans un dossier
git clone <URL GITLAB/GITHUB HTTPS>
Mise à jour / Récupération des derniers changements
git pull
Les commandes suivantes répondent à des problematiques particulières qui peuvent arriver.
Changement de l’URL du repository GIT
Ce problème peut intervenir notamment si vous utilisez GITLAB ou GITHUB en SSH et que vous voulez passer en HTTPS ou vis versa, ou suite à des problèmes de droits d’une clé SSH type “remote: The project you were looking for could not be found.” et “fatal: Could not read from remote repository.”
Vérification de l’URL du repository:
git remote -v
Changement de cet URL:
git remote set-url origin <URL>
Changement de branche
git checkout <nom_de_la_branche>
Le git pull ne fonctionne pas “You have unstaged changes”
Il se peut que vous ayez l’erreur suivante, indiquant que des fichiers ont changés et doivent être commit alors que vous n’avez rien touché et que vous souhaitez juste mettre le serveur à jour :
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Dans ce cas, on doit supprimer ces changements avec la commande suivante :
git reset --hard
Vous pouvez ensuite faire votre git pull
Revenir au commit précédent
git reset --hard HEAD^
Revenir à un commit précis
git reset --hard <ID COMMIT>
L’ID du commit est générallement à 7 chiffres et lettres hexadecimal, exemple:
26b47fa
Vous pouvez le trouver dans l’onglet historique de votre GIT DESKTOP
Ecraser les modifications sur le repository distant (local > remote)
git push --force origin master
Attention, écrase le répository distant, utile si vous voulez “supprimer” un commit qui a été pushé.
Ecraser les modifications sur le repository local (remote > local)
git reset --hard origin/master
Attention, supprime toutes les modifications faites non pushé vers le git distant, utile si vous voulez “supprimer” les commits en local pour avoir la même chose que sur le git distant.