J’ai cloné un repository, après quoi quelqu’un d’autre a créé une nouvelle twig sur laquelle j’aimerais commencer à travailler. J’ai lu le manuel, et il semble facile et direct. Curieusement, ça ne marche pas, et tous les articles que j’ai trouvés suggèrent que je fais le bon choix. Je me soumettrai donc à la mise en voix, car il doit bien y avoir quelque chose qui ne va pas:
L’action correcte semble être
git fetch git branch -a * master remotes/origin/HEAD --> origin/master remotes/origin/master git checkout -b dev-gml origin/dev-gml
À ce stade, il y a un problème, pour une raison quelconque après la git fetch
je ne peux pas voir la twig distante de dev-gml. Pourquoi pas? Si je clone le repository tout de suite, c’est là, donc la twig distante existe certainement:
$ mkdir ../gitest $ cd ../gitest $ git clone https://github.com/example/proj.git Cloning into proj... remote: Counting objects: 1155, done. remote: Compressing objects: 100% (383/383), done. remote: Total 1155 (delta 741), reused 1155 (delta 741) Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done. Resolving deltas: 100% (741/741), done. $ cd projdir $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/dev-gml remotes/origin/master
J’ai essayé git update
, git pull
, git fetch --all
, git pretty-please
dans toutes les permutations possibles …
Le problème peut être vu lors de la vérification du paramètre remote.origin.fetch
(Les lignes commençant par $
sont des invites bash avec les commandes que j’ai tapées. Les autres lignes sont la sortie résultante)
$ git config --get remote.origin.fetch +refs/heads/master:refs/remotes/origin/master
Comme vous pouvez le voir, dans mon cas, la télécommande a été configurée pour extraire spécifiquement et uniquement la twig principale. Je l’ai corrigé comme ci-dessous, y compris la deuxième commande pour vérifier les résultats.
$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" $ git config --get remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
Le joker *
signifie bien entendu tout ce qui se trouve sous ce chemin.
Malheureusement, j’ai vu ce commentaire après avoir déjà creusé et trouvé la réponse par essais et erreurs.
Pour suivre une (nouvelle) succursale distante en tant que succursale locale:
git checkout -b /
ou (parfois cela ne fonctionne pas sans les remotes/
supplémentaires remotes/
):
git checkout -b remotes//
Edit: Vous devez exécuter git remote update
ou git remote update
. Ensuite, vous pouvez lancer git branch -r
pour répertorier les twigs distantes.
J’ai eu ce problème aujourd’hui sur un repo.
Ce n’était pas le problème +refs/heads/*:refs/remotes/origin/*
comme solution supérieure.
Le symptôme était simplement que git fetch origin
ou git fetch
ne semblait rien faire, bien qu’il y ait des twigs à récupérer.
Après avoir essayé beaucoup de choses, j’ai enlevé la télécommande d’origine et l’ai recréée. Cela semble l’avoir corrigé. Je ne sais pas pourquoi.
supprimer avec: git remote rm origin
et recréer avec: git remote add origin
Pour le rendre plus spécifique Créez une twig de suivi, ce qui signifie que vous suivez maintenant une twig distante.
git branch --track branch remote-branch git branch --track exp remotes/origin/experimental
Après quoi tu peux
git branch # to see the remote tracking branch "exp" created .
Ensuite, pour travailler sur cette twig
git checkout branchname git checkout exp
Après avoir apporté des modifications à la twig. Vous pouvez git fetch et git merge avec votre twig de suivi à distance pour fusionner vos modifications et les transférer sur la twig distante comme ci-dessous.
git fetch origin git merge origin/experimental git push origin/experimental
J’espère que ça aide et vous donne une idée, comment cela fonctionne.
écris-le depuis le terminal
git fetch --prune.
ça fonctionne bien.
Cela peut être dû à un moment de la face avant: si vous passez de plusieurs clones, il est facile de vous retrouver dans le mauvais arbre source en essayant de créer une twig inexistante. Il est plus facile lorsque les clones ont des noms similaires, ou les repos sont des clones distincts pour le même projet de chacun des consortingbuteurs multiples. Un nouveau clone de git semblerait évidemment résoudre ce “problème” lorsque le véritable problème est de perdre le focus ou le contexte de travail ou les deux.
Je devais aller dans mes repositorys distants GitExtensions car rien ne semblait fonctionner. Là, j’ai vu que 2 succursales n’avaient pas de référentiel distant configuré. après l’ajustement, il se présente comme suit
Remarque: la twig noExternal3
indique toujours qu’il noExternal3
pas de référentiel distant. Pas sûr de ce que combo de commandes bash aurait trouvé ou ajusté cela.
Nous avons eu le même problème et vous devez utiliser
git fetch git push origin branch_name git branch -r
J’espère que cela aidera quelqu’un qui fait face au même problème