Який із цих рядків правильний?
git checkout 'another_branch'
Або
git checkout origin 'another_branch'
Або
git checkout origin/'another_branch'
git checkout 'another_branch'
Або
git checkout origin 'another_branch'
Або
git checkout origin/'another_branch'
Відповіді:
Якщо another_branch
вже існує локально і ви не перебуваєте на цій гілці, тоді git checkout another_branch
переключаєтесь на гілку.
Якщо another_branch
не існує, але є origin/another_branch
, то git checkout another_branch
він еквівалентний git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. Це потрібно створити another_branch
з origin/another_branch
і встановити origin/another_branch
як верхній потік another_branch
.
Якщо жодного з них немає, git checkout another_branch
повертається помилка.
git checkout origin another_branch
повертає помилку в більшості випадків. Якщо origin
це редакція і another_branch
є файлом, то вона перевіряє файл цієї редакції, але, швидше за все, це не те, що ви очікуєте. origin
в основному використовується в git fetch
, git pull
і git push
як пульт дистанційного керування, псевдонім URL - адреса в віддаленому сховище.
git checkout origin/another_branch
досягає успіху, якщо origin/another_branch
існує. Це призводить до того, що він знаходиться в окремому стані HEAD, а не на будь-якій гілці. Якщо ви робите нові зобов’язання, нові коміти недоступні для жодних існуючих гілок, і жодна з гілок не буде оновлена.
ОНОВЛЕННЯ :
Оскільки вийшла 2.23.0, ми також можемо використовувати git switch
для створення та перемикання гілок.
Якщо foo
існує, спробуйте перейти на foo
:
git switch foo
Якщо foo
не існує , і origin/foo
існує, намагаються створити foo
з , origin/foo
а потім перейти до foo
:
git switch -c foo origin/foo
# or simply
git switch foo
Більш загально, якщо foo
цього не існує, спробуйте створити foo
з відомого списку чи ввести, а потім перейдіть до foo
:
git switch -c foo <ref>
git switch -c foo <commit>
Якщо ми підтримуємо сховище в Gitlab та Github одночасно, локальне сховище може мати два віддалених, наприклад, origin
для Gitlab та github
Github. У цьому випадку сховище має origin/foo
і github/foo
. git switch foo
поскаржиться fatal: invalid reference: foo
, бо невідомо, з якої реф. origin/foo
або github/foo
, щоб створити foo
. Нам потрібно вказати його git switch -c foo origin/foo
або в git switch -c foo github/foo
відповідно до необхідності. Якщо ми хочемо створити гілки з обох віддалених гілок, краще використовувати відмінні назви для нових гілок:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
Якщо foo
існує, спробуйте відтворити / примусити-створити foo
з (або скинути foo
на) відомий реф або виконувати, а потім переключіться на foo
:
git switch -C foo <ref>
git switch -C foo <commit>
які еквівалентні:
git switch foo
git reset [<ref>|<commit>] --hard
Спробуйте переключитися на відокремлену ГОЛОВУ відомої посилання або виконувати:
git switch -d <ref>
git switch -d <commit>
Якщо ви просто хочете створити гілку, але не перейти на неї, скористайтеся git branch
натомість. Спробуйте створити відділення з відомого списку або виконувати:
git branch foo <ref>
git branch foo <commit>
git checkout
команда робить занадто багато речей, на мою думку. Ось чому тут так багато режимів роботи. Якщо єдине, що git checkout
було зроблено, - це перемикання гілок, відповідь була б простою, але вона також може створювати гілки та навіть витягувати файли з певних комітетів без перемикання гілок.
git switch
для переходу до гілки.
git checkout
натомість для старих версій, що також працює в сучасних версіях.
Перехід до іншої гілки в git. Відверта відповідь,
git-checkout - Переключення гілок або відновлення робочих файлів дерев
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Перш ніж переключити гілку, переконайтеся, що у вас немає змінених файлів; у такому випадку ви можете ввести зміни або зберегти їх.
[ git checkout "branch_name"
]
ще один спосіб сказати:
[ git checkout -b branch_name origin/branch_name
]
у випадку, якщо "ім'я гілки" існує лише віддалено.
[ git checkout -b branch_name origin/branch_name
] корисний у випадку, якщо у вас є кілька віддалених.
Щодо [ git checkout origin 'another_branch'
] Я не впевнений, що це можливо, AFAK ви можете це зробити за допомогою команди "fetch" - [ git fetch origin 'another_branch'
]
Що для мене спрацювало наступне:
Перехід до потрібної гілки:
git checkout -b BranchName
І тоді я потягнув "майстра" за:
git pull origin master
Корисні команди для роботи в повсякденному житті:
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
Якщо ви хочете, щоб гілка відстежувала віддалену гілку, яка дуже імпортується, якщо ви збираєтеся внести зміни до гілки та витягнути зміни тощо, вам потрібно використовувати Додати -t для фактичної реєстрації, наприклад:
git checkout -t branchname
Перевірка: git branch -a
Якщо ви отримуєте лише одну гілку. Потім виконайте нижче кроки.
git config --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
парам), і тепер задаєтесь питанням, чому ви не можете отримати інші віддалені гілки, error: pathspec 'another_branch' did not match any file(s) known to git
використовуючи команди, запропоновані вище. Це, звичайно, не те, про що було в первісному питанні, але це може допомогти іншим почухати голову.
Я використовую це для переключення однієї гілки на іншу, будь-хто, кого ви можете використовувати, працює для мене як шарм.
git switch [відділенняName] АБО git checkout [branchName]
напр .: git перемикач розробляти АБО
git checkout розробити
git checkout [branch]
для більшості користувачів, які приходять до цього питання