Question fréquentes sur Git pour le Projet GL : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Adaptation de la page Subversion pour Git.)
 
(fatal: Unable to create '.../index.lock': File exists)
Ligne 21 : Ligne 21 :
 
</pre>
 
</pre>
  
<math>\Rightarrow</math> il faut faire un <code>pull</code> avant le <code>push</code>, une nouvelle revision est disponible dans l'archive partagée.
+
<math>\Rightarrow</math> il faut faire un <code>pull</code> avant le <code>push</code>, une nouvelle révision est disponible dans l'archive partagée.
 +
 
 +
== fatal: Unable to create '.../index.lock': File exists ==
 +
 
 +
La plupart des opérations échouent avec le message :
 +
 
 +
<pre>
 +
fatal: Unable to create '/home/ensi2a/drouetn/Projet_GL/.git/index.lock': File exists.
 +
 
 +
If no other git process is currently running, this probably means a
 +
git process crashed in this repository earlier. Make sure no other git
 +
process is running and remove the file manually to continue.
 +
</pre>
 +
 
 +
<math>\Rightarrow</math> à moins que vous ne veniez de trouver un bug dans Git, ce message se produit quand :
 +
* Une autre instance de Git est en train de s'exécuter dans le même répertoire (typiquement, un "git commit" qui a lancé un éditeur de texte et qui attend que cet éditeur de texte termine). Solution : faire en sorte que cette autre instance termine proprement (typiquement : en fermant l'éditeur de texte lancé par "git commit")
 +
* Vous avez tué brutalement un processus <code>git</code> (typiquement, Control-C dans un terminal). Solution : supprimer le fichier <code>index.lock</code>, et pour la prochaine fois, penser à ne plus tuer brutalement les processus ...  
  
 
[[Catégorie:Projet GL]]
 
[[Catégorie:Projet GL]]
 
[[Catégorie:Git]]
 
[[Catégorie:Git]]

Version du 4 janvier 2011 à 16:25

Une liste des quelques erreurs les plus fréquentes avec Git pour le Projet GL. Merci de conserver cette liste courte, pour les détails, il existe déjà une FAQ Git et le manuel utilisateur.

Problèmes après utilisation du mail ou de scp

Vous avez échangé des modifications entre membres d'une equipe, en dehors de Git (par email, scp, cle usb, ...), et vous avez beaucoup de conflits incomprehensible :

\Rightarrow c'est normal. Git ne sait rien sur ce qu'il se passe par email ou scp, il croit que plusieurs developpeurs ont fait des modifications similaires (et en general pas tout a fait identiques). En bref, si vous utilisez autre chose que Git pour vous echanger du code, attendez-vous a des problemes.

Problème avec gedit

Si EDITOR=gedit, "git commit" se plaind d'un message de commit vide.

\Rightarrow Le problème se produit lorsqu'un gedit est déjà lance (un nouvel appel à gedit demande au programme existant d'ouvrir le fichier, et termine immédiatement, donc Git croit que gedit a fini le travail). 2 solutions : ne pas utiliser EDITOR=gedit, ou bien fermer toutes les fenêtres gedit avant de faire un commit.

git push échoue avec le message non-fast-forward

"git push" echoue avec le message :

To ssh://glXX@ensibm.imag.fr/~/git/
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://glXX@ensibm.imag.fr/~/git/'

\Rightarrow il faut faire un pull avant le push, une nouvelle révision est disponible dans l'archive partagée.

fatal: Unable to create '.../index.lock': File exists

La plupart des opérations échouent avec le message :

fatal: Unable to create '/home/ensi2a/drouetn/Projet_GL/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

\Rightarrow à moins que vous ne veniez de trouver un bug dans Git, ce message se produit quand :

  • Une autre instance de Git est en train de s'exécuter dans le même répertoire (typiquement, un "git commit" qui a lancé un éditeur de texte et qui attend que cet éditeur de texte termine). Solution : faire en sorte que cette autre instance termine proprement (typiquement : en fermant l'éditeur de texte lancé par "git commit")
  • Vous avez tué brutalement un processus git (typiquement, Control-C dans un terminal). Solution : supprimer le fichier index.lock, et pour la prochaine fois, penser à ne plus tuer brutalement les processus ...