Comme mentionné dans la réponse de Yoshua Wuyts , en utilisant :git branch
git branch --unset-upstream
Autres options:
Vous n'êtes pas obligé de supprimer votre succursale locale.
Supprimez simplement la branche locale qui suit la branche distante:
git branch -d -r origin/<remote branch name>
-r, --remotes
indique à git de supprimer la branche de suivi à distance (c'est-à-dire de supprimer l'ensemble de branches pour suivre la branche distante). Ce sera pas supprimer la branche sur la prise en pension à distance !
Voir " Avoir du mal à comprendre git-fetch "
il n'y a pas un tel concept de branches de suivi local, seulement des branches de suivi à distance.
Il en origin/master
va de même pour une branche de suivi à distance master
dans le origin
référentiel
Comme mentionné dans la réponse de Dobes Vandermeer , vous devez également réinitialiser la configuration associée à la branche locale :
git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge
Supprimez les informations en amont pour <branchname>
.
Si aucune branche n'est spécifiée, il s'agit par défaut de la branche actuelle.
(git 1.8+, oct.2012, commit b84869e par Carlos Martín Nieto ( carlosmn
) )
Cela rendra tout push / pull complètement inconscient origin/<remote branch name>
.
remote.<name>.fetch
paramètre de configuration refspec, mais je ne sais pas si vous pouvez exclure une branche lorsque vous spécifiez une refspec.git branch -d -r origin/<remote branch name>
supprimera une branche de suivi à distance telle que déclarée localement , dans votre repo. Il ne supprimera pas la branche sur le référentiel distant lui-même (seul legit push :development
ferait). Ainsi, lorsque vous poussez votre section localedevelopment
, avec un historique différent de la branche de développement à distance (sur le référentiel distant), vous recevrez toujours l'non-fast-forward
avertissement.Pour supprimer l'amont de la branche actuelle, procédez comme suit:
Ceci est disponible pour Git v.1.8.0 ou plus récent. (Sources: 1.7.9 réf , 1.8.0 réf )
la source
la source
git branch --unset-upstream [branchname]
fatal: 'origin/master' does not appear to be a git repository fatal: Could not read from remote repository.
après avoir fait ça et essayé un git pull origin / masterPour supprimer l'association entre l'exécution de branche locale et distante:
Supprimez éventuellement la branche locale par la suite si vous n'en avez pas besoin:
Cela ne supprimera pas la branche distante.
la source
git branch -d <branch>
n'est pas tenu de supprimer l'association.git branch -vv
vous verrez toujours les anciennes branches jusqu'à ce que vous le fassiezgit branch -d <branch>
.git pull
peut récupérer toutes les branches distantes et rajouter celles qu'il considère comme "apparues" sur la télécommande. Vous pouvez modifier ce comportement "tirer toutes les branches" en faisantgit config [--global] push.default simple
ougit config [--global] push.default current
. Pluspush.default
ici .La façon la plus simple est de modifier
.git/config
Voici un exemple de fichier
Supprimer la ligne
merge = refs/heads/test1
dans latest1
section de branchela source
.git/config
est également disponible.Vous pouvez supprimer la branche de suivi à distance à l'aide de
comme VonC le mentionne ci-dessus. Cependant, si vous conservez votre copie locale de la branche,
git push
essaiera toujours de pousser cette branche (ce qui pourrait vous donner une erreur d'avance non rapide comme elle l'a fait pour Ruffin ). C'est parce que la configuration parpush.default
défautmatching
signifie ce qui signifie:(voir http://git-scm.com/docs/git-config sous
push.default
)Voyant que cela est probablement pas ce que vous vouliez quand vous avez supprimé la branche de suivi à distance, vous pouvez définir
push.default
àupstream
(outracking
si vous avez git <1.7.4.3)en utilisant
et git cessera d'essayer de pousser les branches que vous avez "arrêtées de suivre".
Remarque: La solution la plus simple serait de simplement renommer votre branche locale en autre chose. Cela éliminerait également certains risques de confusion.
la source
Voici une ligne pour supprimer toutes les branches de suivi à distance correspondant à un modèle:
git branch -rd $(git branch -a | grep '{pattern}' | cut -d'/' -f2-10 | xargs)
la source
git branch -r -D $(git branch -r | grep -v "master")
Ce n'est pas une réponse à la question, mais je n'ai pas pu trouver comment obtenir une mise en forme de code décente dans un commentaire ci-dessus ...
J'ai la recette soumise par @Dobes dans une entrée de fantaisie shmancy [alias] dans mon .gitconfig:
Ensuite, je peux simplement courir
la source
git branch --unset-upstream
arrête de suivre toutes les succursales locales, ce qui n'est pas souhaitable.Supprimez la
[branch "branch-name"]
section du.git/config
fichier suivie degit branch -D 'branch-name' && git branch -D -r 'origin/branch-name'
fonctionne le mieux pour moi.
la source
Vous pouvez utiliser cette méthode pour supprimer votre branche distante
la source
La façon la plus simple de procéder consiste à supprimer la branche à distance, puis à utiliser:
git fetch --prune (alias git fetch -p)
la source