Хтось виштовхнув гілку з назвою test
за допомогою git push origin test
до спільного сховища. Я можу побачити гілку за допомогою git branch -r
.
Зараз я намагаюся перевірити віддалену гілку test
.
У мене вийшло:
git checkout test
, який нічого не дає
git checkout origin/test
дає * (немає гілки)
. Що збиває з пантелику. Як можна опинитися на "no branch"?
Як перевірити віддалену гілку Git'а?
Відповідь Якуба насправді покращує це. З версією Git'а 1.6.6, маючи лише один пульт, можна просто обійтися:
git fetch
git checkout test
Як зазначає користувач masukomi в коментарі, git checkout test
НЕ буде працювати в сучасному git'і, якщо у вас кілька віддалених. У цьому випадку використовуйте
git checkout -b test <name of remote>/test
або скорочення
git checkout -t <name of remote>/test
Перш ніж розпочати локальну роботу на віддаленій гілці, вам потрібно отримати її, як зазначено у відповідях нижче.
Щоб отримати гілку, потрібно просто зробити наступне:
git fetch origin
Це дозволить отримати всі віддалені філії для вас. Ви можете побачити відділення, доступні для оформлення замовлення:
git branch -v -a
Маючи в руках віддалені гілки, тепер вам потрібно перевірити гілку, яка вас цікавить, що дасть вам локальну робочу копію:
git checkout -b test origin/test
Примітка: З сучасним Git'ом (>= 1.6.6), ви можете використовувати просто
git checkout test
(зверніть увагу, що саме 'test', а не 'origin/test'), щоб виконати магічну DWIM-mery і створити для вас локальну гілку 'test', для якої висхідною буде гілка віддаленого відстежування 'origin/test'.
Висновок * (no branch)
в git branch
означає, що ви знаходитесь на безіменній гілці, в так званому стані "detached HEAD" (HEAD вказує безпосередньо на комміт, а не є символічним посиланням на якусь локальну гілку). Якщо ви зробили кілька коммітів на цій неіменованій гілці, ви завжди можете створити локальну гілку від поточного комміту:
git checkout -b test HEAD
У цьому випадку, ймовірно, ви хочете створити локальну "тестову" гілку, яка відстежує віддалену "тестову" гілку:
$ git branch test origin/test
У попередніх версіях git
вам потрібно було вказати явний параметр --track
, але зараз це параметр за замовчуванням, коли ви створюєте відгалуження від віддаленої гілки.