C’est probablement une question idiote, mais je suis tout nouveau à regarder et je vois une succursale distante qui n’existe plus.
$ git branch -a * master remotes/origin/master remotes/origin/production
Je ne crois pas que la twig de production existe à distance et ne peut pas comprendre pourquoi cela se voit encore localement. Comment puis-je supprimer / supprimer cette twig? Voici à quoi ressemble une tentative de suppression:
$ git push origin :production error: unable to push to unqualified destination: production The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@IP:puppet.git'
Je peux vérifier la twig de production supposée à distance mais obtenez ceci:
$ git checkout origin/production Note: checking out 'origin/production'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any twigs by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at c323996... added powerdns module, no really
Je n’ai aucune idée de ce que je fais. Toute aide serait appréciée.
Tu dois faire:
git remote prune origin
Il y a donc deux problèmes. Dans les deux cas, rappelez-vous que Git est dissortingbué.
Premier. Quand tu fais des choses comme
$ git branch -a
l’opération est effectuée sur votre repo local, PAS l’ordinateur distant. En d’autres termes, votre repo local rapporte toutes les twigs connues. Celles-ci peuvent être des twigs locales (comme «master») ou des twigs distantes récupérées depuis une télécommande. Depuis la dernière extraction, la twig ‘production’ du repo distant a changé, mais votre repo local ne le sait pas. La réponse de manojlds est correcte. Courir
$ git origine de pruneau à distance
enlever les twigs périmées.
La commande ‘git push origin: production’ est utilisée pour supprimer la twig du repository git de l’ordinateur distant. Pas votre repo local. Dans ce cas, quelqu’un d’autre a déjà supprimé la twig sur le repository git de l’ordinateur distant, vous voyez donc ce message d’erreur.
Voici un lien qui résume ces commandes.
Le deuxième problème concerne la caisse.
Lorsque vous extrayez une twig, vous voulez le faire depuis une twig locale et non vers la twig distante. C’est pourquoi vous obtenez l’erreur sur un HEAD détaché. Le repository git-notes a une bonne explication du problème en détail. Fondamentalement, la phrase clé est
Cependant, lorsque vous vérifiez quelque chose qui n’est pas un nom de twig local, HEAD n’est plus une référence symbolique à quoi que ce soit. Au lieu de cela, il contient en réalité le hachage SHA-1 (l’ID de validation) de la validation vers laquelle vous passez.
Maintenant, comment extraire une twig locale, qui est la même que la twig distante?
Facile, vous créez une succursale locale, au moment de la sortie de la succursale distante.
$ git checkout -b mon_local_branch origine / production
git remote prune origin
est juste, il suffit d’append vous pouvez utiliser l’option --dry-run
, qui indique quelles twigs seront élaguées de votre repo local, mais ne les élague pas réellement
git remote prune origin --dry-run