Je suis un nouvel utilisateur de Git. J'ai créé un référentiel appelé Spoon-Knife (disponible pour pratiquer le forking avec Git). Ensuite, je l'ai cloné localement en exécutant
git clone https://github.com/rohinichoudhary/Spoon-Knife.git
Ce référentiel contient trois branches, à savoir:.
master
,test-branch
,change-the-title
.Quand je cours git branch
, il ne montre que *master
, pas les deux branches restantes. Et quand je cours
git checkout test-branch
Je reçois l'erreur suivante:
error: pathspec 'test-branch' ne correspond à aucun fichier connu de git.
Pourquoi cela arrive-t-il? Comment puis-je résoudre ce problème?
Quand je cours
git branch
, il ne montre que*master
, pas les deux branches restantes.
git branch
ne répertorie pas test_branch
, car il n’existe pas encore de branche de ce type dans votre dépôt local. Lors du clonage d'un référentiel, une seule branche locale (master
, ici) est créée et extraite dans le clone résultant, quel que soit le nombre de branches présentes dans le référentiel distant à partir duquel vous avez cloné. À ce stade, test_branch
n’existe dans votre référentiel qu’en tant que suivi à distance , et non en tant que branche locale .
Et quand je cours
git checkout test-branch
Je reçois l'erreur suivante [...]
Vous devez utiliser une "ancienne" version de Git. Dans les versions plus récentes ( à partir de v1.7.0-rc ),
Si
<branch>
n'est pas trouvé, mais il existe une branche de suivi dans une seule télécommande (appelez-la<remote>
) avec un nom correspondant, traiter [git checkout <branch>
] comme équivalent à$ git checkout -b <branch> --track <remote>/<branch>
Il suffit de courir
git checkout -b test_branch --track Origin/test_branch
au lieu. Ou effectuez une mise à jour vers une version plus récente de Git.
Mon ami (e), vous devez d'abord créer ces branches correspondantes localement pour pouvoir accéder à ces deux autres branches à l'aide de cette ligne de code.
git branch test-branch
et
git branch change-the-title
alors seulement vous pourrez faire git checkout à ces branches
De plus, après avoir créé chaque branche, prenez les dernières modifications de ces branches particulières en utilisant git pull Origin branche_name comme indiqué dans le code ci-dessous
git branch test-branch
git checkout test-branch
git pull Origin test-branch
et pour une autre branche nommée change-the-title lance le code suivant =>
git branch change-the-title
git checkout change-the-title
git pull Origin change-the-title
Bonne programmation :)
Le Git moderne devrait pouvoir détecter les branches distantes et en créer une à la caisse.
Cependant, si vous le faisiez n clone peu profond (par exemple avec --depth 1
), essayez les commandes suivantes pour le corriger:
git config remote.Origin.fetch '+refs/heads/*:refs/remotes/Origin/*'
git fetch --all
et essayez à nouveau de vérifier la succursale.
Vous pouvez également essayer de libérer votre clone, par exemple git fetch --unshallow
et essayez à nouveau.
Voir aussi: Comment récupérer toutes les branches distantes?
Vous pouvez également obtenir cette erreur avec n’importe quelle version de git si la branche distante a été créée après votre dernier clone/fetch et que votre référentiel local n’a pas encore connaissance de cela. Je l'ai résolu en faisant un git fetch
_ premier qui "informe" votre référent local de toutes les succursales distantes.
git fetch
git checkout test-branch
il suffit de suivre trois étapes, le problème de branche git sera résolu.
git remote update
git fetch
git checkout --track Origin/test-branch
Solution:
Pour résoudre ce problème, vous devez d'abord aller chercher
$ git fetch Origin
$ git rebase Origin/master
Le maître de succursale actuel est à jour.
$ git checkout develop
Développement de branches mis en place pour suivre les branches distantes développées depuis Origin.
Passé à une nouvelle branche "développer"