“Impossible de mettre à jour les chemins d’access et de passer à la twig en même temps”

J’utilise parfois l’option checkout -b pour créer une nouvelle twig, la vérifier en même temps et configurer le suivi dans une seule commande.

Dans un nouvel environnement, je reçois cette erreur:

 $ git checkout -b test --track origin/master fatal: Cannot update paths and switch to branch 'test' at the same time. Did you intend to checkout 'origin/master' which can not be resolved as commit? 

Pourquoi Git ne l’aime pas? Cela fonctionnait avec le même repo.

origin/master ‘ qui ne peut pas être résolu en tant que commit

Étrange: vous devez vérifier vos télécommandes:

 git remote -v 

Et assurez-vous que l’ origin est récupérée:

 git fetch origin 

Alors:

 git branch -avv 

(pour voir si vous avez récupéré une twig origin/master )

FWIW: Si vous avez une faute de frappe dans votre nom de twig, vous obtenez la même erreur.

Vous pouvez obtenir cette erreur dans le contexte de, par exemple, une version de Travis qui, par défaut, vérifie le code avec git clone --depth=50 --branch=master . À ma connaissance, vous pouvez contrôler --depth via .travis.yml mais pas --branch . Etant donné que seule une twig est suivie par la télécommande, vous devez mettre à jour la télécommande pour suivre les références de la télécommande.

Avant:

 $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master 

Le correctif:

 $ git remote set-twigs --add origin branch-1 $ git remote set-twigs --add origin branch-2 $ git fetch 

Après:

 $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/branch-1 remotes/origin/branch-2 remotes/origin/master 

Cette simple chose a fonctionné pour moi!

S’il dit qu’il ne peut pas faire 2 choses en même temps, séparez-les.

 git branch branch_name origin/branch_name git checkout branch_name 

Vous pouvez suivre ces étapes lorsque vous tombez sur ce problème:

  1. Exécutez la commande suivante pour répertorier les twigs connues pour votre référentiel local.

git montre son origine

qui produit ceci:

  remote origin Fetch URL:  Push URL:  HEAD branch: development Remote twigs: development tracked Feature2 tracked master tracked refs/remotes/origin/Feature1 stale (use 'git remote prune' to remove) Local twigs configured for 'git pull': Feature2 merges with remote Feature2 development merges with remote development master merges with remote master Local refs configured for 'git push': Feature2 pushes to Feature2 (up to date) development pushes to development (up to date) master pushes to master (local out of date) 
  1. Après avoir vérifié les détails comme (récupérer l’URL, etc.), exécutez cette commande pour récupérer toute nouvelle twig (c.-à-d. Que vous souhaitez extraire dans votre repo local) qui existe dans la télécommande mais pas dans votre local.
 » git remote update Fetching origin From gitlab.domain.local:ProjectGroupName/ProjectName * [new branch] Feature3 -> Feature3 

Comme vous pouvez le voir, la nouvelle twig a été extraite de la télécommande.
3. Enfin, consultez la twig avec cette commande

 » git checkout -b Feature3 origin/Feature3 Branch Feature3 set up to track remote branch Feature3 from origin. Switched to a new branch 'Feature3' 

Il n’est pas nécessaire de dire explicitement à Git de suivre (en utilisant –track ) la twig avec remote.

La commande ci-dessus définira la twig locale pour suivre la twig distante d’origine.

Pour moi, je devais append la télécommande:

 git remote -add myRemoteName('origin' in your case) remoteGitURL 

alors je pourrais aller chercher

 git fetch myRemoteName 

D’abord, vous devez Fetch la télécommande (la twig spécifique), puis vous pouvez créer un br local et le suivre avec cette twig distante à l’aide de votre commande (c.-à-d. Avec -b et –track).

Vous devriez aller dans le sous-module dir et exécuter git status .

Vous pouvez voir que beaucoup de fichiers ont été supprimés. Vous pouvez courir

  1. git reset .

  2. git checkout .

  3. git fetch -p

  4. git rm --cached submodules // votre nom

  5. git submoudle add ....

Vous pouvez utiliser ces commandes: Git Remote Update, Git Fetch, Git Checkout

Je pense que c’est peut-être à cause de votre twig locale ne peut pas suivre la twig à distance

Cela a pour conséquence que votre succursale locale ne suit pas la twig distante. Comme dit ssasi, vous devez utiliser ces commandes:

 git remote update git fetch git checkout -b branch_nameA origin/branch_nameB 

J’ai résolu mon problème tout à l’heure ….