Laquelle de ces lignes est correcte?
git checkout 'another_branch'
Ou
git checkout origin 'another_branch'
Ou
git checkout origin/'another_branch'
git checkout 'another_branch'
Ou
git checkout origin 'another_branch'
Ou
git checkout origin/'another_branch'
Réponses:
Si another_branchexiste déjà localement et que vous n'êtes pas sur cette branche, git checkout another_branchbascule alors sur la branche.
Si another_branchn'existe pas mais existe origin/another_branch, alors git checkout another_branchest équivalent à git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch. C'est de créer à another_branchpartir de origin/another_branchet de définir origin/another_branchen amont de another_branch.
Si aucun n'existe, git checkout another_branchrenvoie une erreur.
git checkout origin another_branchrenvoie une erreur dans la plupart des cas. S'il origins'agit d'une révision et d' another_branchun fichier, il extrait le fichier de cette révision, mais ce n'est probablement pas ce que vous attendez. originest principalement utilisé dans git fetch, git pullet git pushcomme une télécommande, un alias de l'URL du dépôt distant.
git checkout origin/another_branchréussit s'il origin/another_branchexiste. Il conduit à être dans un état HEAD détaché, pas sur une branche. Si vous effectuez de nouveaux validations, les nouvelles validations ne sont accessibles depuis aucune branche existante et aucune des branches ne sera mise à jour.
MISE À JOUR :
Comme la version 2.23.0 a été publiée, nous pouvons également l'utiliser git switchpour créer et changer de branche.
S'il fooexiste, essayez de basculer vers foo:
git switch foo
Si foon'existe pas et origin/fooexiste, essayez de créer à foopartir de origin/foo, puis basculez vers foo:
git switch -c foo origin/foo
# or simply
git switch foo
Plus généralement, s'il foon'existe pas, essayez de créer à foopartir d'une référence connue ou d'un commit, puis passez à foo:
git switch -c foo <ref>
git switch -c foo <commit>
Si nous maintenons un référentiel dans Gitlab et Github en même temps, le référentiel local peut avoir deux télécommandes, par exemple, originpour Gitlab et githubpour Github. Dans ce cas, le référentiel a origin/fooet github/foo. git switch foova se plaindre fatal: invalid reference: foo, car il ne sait pas à partir de quelle référence, origin/fooou github/foo, pour créer foo. Nous devons le spécifier avec git switch -c foo origin/fooou git switch -c foo github/fooselon le besoin. Si nous voulons créer des branches à partir des deux branches distantes, il est préférable d'utiliser des noms distinctifs pour les nouvelles branches:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
S'il fooexiste, essayez de recréer / forcer la création à foopartir (ou de le réinitialiser foo) d'une référence ou d'une validation connue, puis passez à foo:
git switch -C foo <ref>
git switch -C foo <commit>
qui équivalent à:
git switch foo
git reset [<ref>|<commit>] --hard
Essayez de basculer vers un HEAD détaché d'une référence ou d'un commit connu:
git switch -d <ref>
git switch -d <commit>
Si vous souhaitez simplement créer une branche sans y basculer, utilisez git branchplutôt. Essayez de créer une branche à partir d'une référence connue ou d'un commit:
git branch foo <ref>
git branch foo <commit>
git checkoutcommande fait trop de choses, à mon avis. C'est pourquoi il y a tant de modes de fonctionnement ici. Si la seule chose à git checkoutfaire était de changer de branche, la réponse serait simple, mais elle peut également créer des branches et même extraire des fichiers à partir de validations spécifiques sans changer de branche.
git switchpour passer à une branche.
git checkoutplace les anciennes versions, qui fonctionnent également dans les versions modernes.
Passer à une autre branche dans git. Réponse simple,
git-checkout - Changer de branche ou restaurer des fichiers d'arborescence de travail
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Avant de changer de branche, assurez-vous de ne pas avoir de fichiers modifiés, dans ce cas, vous pouvez valider les modifications ou les cacher.
[ git checkout "branch_name"]
est une autre façon de dire:
[ git checkout -b branch_name origin/branch_name]
dans le cas où "nom_branche" n'existe qu'à distance.
[ git checkout -b branch_name origin/branch_name] est utile si vous avez plusieurs télécommandes.
Concernant [ git checkout origin 'another_branch'] je ne suis pas sûr que ce soit possible, AFAK vous pouvez le faire en utilisant la commande "fetch" - [ git fetch origin 'another_branch']
Ce qui a fonctionné pour moi est le suivant:
Basculez vers la branche souhaitée:
git checkout -b BranchName
Et puis j'ai tiré le "maître" en:
git pull origin master
Commandes utiles pour travailler au quotidien:
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
Si vous voulez que la branche suive la branche distante, ce qui est très important si vous allez valider des modifications dans la branche et tirer des modifications, etc., vous devez utiliser ajouter un -t pour le paiement réel, par exemple:
git checkout -t branchname
Vérifier : git branch -a
Si vous n'obtenez qu'une seule succursale. Suivez ensuite les étapes ci-dessous.
git config --listgit config --unset remote.origin.fetch git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*depthparam) précédemment et que vous vous demandez maintenant pourquoi vous ne pouvez pas récupérer d'autres branches distantes en error: pathspec 'another_branch' did not match any file(s) known to gitutilisant les commandes suggérées ci-dessus. Ce n'est sûrement pas l'objet de la question d'origine, mais cela peut aider les autres à se gratter la tête ici.
J'utilise cela pour passer d'une branche à une autre, n'importe qui peut l'utiliser, cela fonctionne pour moi comme un charme.
git switch [branchName] OU git checkout [branchName]
ex: git switch develop OR
git checkout develop
git checkout [branch]pour la plupart des utilisateurs qui viennent à cette question