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_branch
existe déjà localement et que vous n'êtes pas sur cette branche, git checkout another_branch
bascule alors sur la branche.
Si another_branch
n'existe pas mais existe origin/another_branch
, alors git checkout another_branch
est équivalent à git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. C'est de créer à another_branch
partir de origin/another_branch
et de définir origin/another_branch
en amont de another_branch
.
Si aucun n'existe, git checkout another_branch
renvoie une erreur.
git checkout origin another_branch
renvoie une erreur dans la plupart des cas. S'il origin
s'agit d'une révision et d' another_branch
un fichier, il extrait le fichier de cette révision, mais ce n'est probablement pas ce que vous attendez. origin
est principalement utilisé dans git fetch
, git pull
et git push
comme une télécommande, un alias de l'URL du dépôt distant.
git checkout origin/another_branch
réussit s'il origin/another_branch
existe. 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 switch
pour créer et changer de branche.
S'il foo
existe, essayez de basculer vers foo
:
git switch foo
Si foo
n'existe pas et origin/foo
existe, essayez de créer à foo
partir de origin/foo
, puis basculez vers foo
:
git switch -c foo origin/foo
# or simply
git switch foo
Plus généralement, s'il foo
n'existe pas, essayez de créer à foo
partir 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, origin
pour Gitlab et github
pour Github. Dans ce cas, le référentiel a origin/foo
et github/foo
. git switch foo
va se plaindre fatal: invalid reference: foo
, car il ne sait pas à partir de quelle référence, origin/foo
ou github/foo
, pour créer foo
. Nous devons le spécifier avec git switch -c foo origin/foo
ou git switch -c foo github/foo
selon 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 foo
existe, essayez de recréer / forcer la création à foo
partir (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 branch
plutô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 checkout
commande fait trop de choses, à mon avis. C'est pourquoi il y a tant de modes de fonctionnement ici. Si la seule chose à git checkout
faire é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 switch
pour passer à une branche.
git checkout
place 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 --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
param) 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 git
utilisant 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