31 votes

Que signifie l'avertissement "Mise à jour de la branche actuellement extraite" de git?

Quand je fais un push git, je vois ce qui suit:

 warning: updating the currently checked out branch; this may cause confusion,
as the index and working tree do not reflect changes that are now in HEAD.
 

J'ai cherché sur Google pour ce message. Tout ce que je peux trouver, c'est une discussion sur une liste de diffusion git au cours de laquelle les auteurs essaient de décider exactement comment améliorer ce message pour qu'il me communique le véritable problème.

Comment ai-je causé cela et comment puis-je le réparer?

46voto

Brian Campbell Points 101107

Ce qui se passe quand vous poussant à un non-nue repo. Un nu-repo est celui qui se compose uniquement d'un .git répertoire; un non-nue repo comprend également une caisse. En général, vous ne devriez pas pousser à non à nu les opérations de pension; en fait, dans une future version de git, qui sera interdit. Si vous pousser à non à nu repo, puis le CHEF de que les pensions ne seront pas synchronisées avec l'index et de la copie de travail.

Si vous êtes à la création de pensions de titres que les gens vont vouloir pousser à, alors vous devez le créer à l'aide de git init --bare (et git init --bare --shared si plusieurs comptes d'utilisateurs ont besoin d'accéder à celle-ci), ou git clone --bare si vous êtes en train de créer par clonage d'un existant repo.

12voto

VonC Points 414372

En bref, votre dépôt distant n'est plus un nu un, et en vous appuyant sur la télécommande de la caisse de la succursale.

Voir "Comment publier un dépôt Git":

Un dépôt nu est pas un extrait de la copie de travail du code. Il ne contient que la base de données de git.
En règle générale, vous ne devriez jamais aller dans un référentiel qui contient des modifications dans la copie de travail.
Pour nous assurer que cela ne se produise pas, nous nous efforçons de rendre le serveur de dépôt un dépôt nu - il n'a pas de copie de travail

À partir d' ici:

Notez que l'objectif d'un "push" est normalement un nu référentiel (c'est à dire, avec aucun travaux à l'arbre de son propre).
Vous pouvez également pousser à un référentiel qui a un extrait de travail de l'arbre, mais l'arbre de travail ne sera pas mis à jour par la poussée.
Cela peut conduire à des résultats inattendus si la branche que vous pousser à est actuellement extrait de la branche.

Si un travail isolé arbre est défini (qui peut par exemple correspondre à un serveur web DocumentRoot), vous devez :

Vérifier, sur votre dépôt distant, la valeur de git config core.worktree et git config core.bare

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X