Vous pouvez dire à Git de retirer toutes les branches comme ceci:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
Si vous regardez à l'intérieur .git/config
, cela ressemblera à quelque chose comme ceci:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/owner/repo.git
fetch = +refs/heads/master:refs/remotes/origin/master
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
J'ai comparé cela à un clone complet, et j'ai vu que la seule différence était le "chercher" sous [remote "origin"]
.
Remarque: j'utilise Git version 1.8.2. Les options de configuration peuvent avoir changé si vous exécutez une ancienne version de Git. Si mes commandes ne fonctionnent pas, je vous recommande de regarder .git/config
pour voir si vous pouvez voir quelque chose de similaire.
git
outil de ligne de commande est incroyablement puissant (en fait, la plupart des commandes sont implémentées en termes d'autres commandes), vous pouvez donc faire beaucoup de choses avec lui une fois que vous comprenez comment le référentiel est organisé (essentiellement comment le.git
dossier fonctionne ).git show-ref tags
échoue toujours.git clone --depth=1 --branch branchname [email protected]:foobar/repo.git destinationpath
Si vous souhaitez ajouter une seule branche, vous pouvez effectuer les opérations suivantes:
Fonctionne avec la version 1.9.1 de git
la source
fetch =
lignes à .git / config, très pratique lorsque vous voulez basculer entre deux branches sur la télécommande mais pas récupérer tout un tas d'autres branches. Merci!Pour ajouter une autre branche distante à mon référentiel local qui a été clonée à l'aide
--single-branch
, ce qui suit fonctionne pour moi:Vous pouvez également utiliser des caractères génériques pour
[remote-branch]
, par exempleCela fonctionne avec la version 2.21.1 de git . D'autres réponses suggérant de faire
git fetch origin [remote-branch]:[local-branch]
n'ont pas fonctionné car elles créent la branche locale dans un état non suivi. Lors de son exécution,git pull
il a d'abord essayé de fusionner à nouveau tous les commits de la branche distante avec ma branche locale.la source
Ajoutez simplement le référentiel d'origine en tant que nouvelle télécommande et travaillez-vous à partir de là?
Vous pouvez même supprimer votre télécommande «origine» actuelle et renommer «myNewOrigin» en «origine» si vous le souhaitez.
De là, vous pouvez extraire / fusionner / rebaser.
la source
Changez simplement le
.git/config
fichier de votre dépôt local, lignefetch
de[remote origin] section
.Avant quelque chose comme ça
Après il en sera ainsi
la source
J'ai d'abord appliqué la réponse de Dominik Pawlak et cela a fonctionné. Mais je n'ai pas pu apporter d'autres modifications, après avoir engagé plus de code dans ma nouvelle branche.
Il existe une autre façon de réinitialiser
single-branch
entièrement, qui n'a pas été mentionnée ici:Cela réinitialise tout à l'original.
la source
Pour moi a travaillé:
la source