GIT - Разница между отслеживанием ветки и клонированием
Я видел эту команду, плавающую на разных сайтах.
git checkout --track -b <...>
Если я создаю голый репо на удаленном сервере и работаю из двух разных мест, каков самый быстрый и "одобренный" способ сделать это?
Что я сделал, я создал начальное репо на своем ноутбуке, а затем нажал изменения в "происхождение", где мой репозиторий VPS (голый репо). Теперь, на моем рабочем столе, следует ли клонировать мое репо? Я спрашиваю, потому что у меня два ветки: "dev" и "master". Как только я нахожусь на своем рабочем столе, я не был уверен, следует ли мне "отслеживать" репо, или я должен сначала клонировать? Что делать, если я хочу работать с веткой dev, так это, когда я проверяю использование директивы --track?
Вот что я сделал до сих пор.
На ноутбуке
cd devproject
git init
git add .
git commit -m "My first commit"
В VPS Repo
mkdir /home/sam/devproject.git
cd /home/sam/devproject.git
git --bare init
exit
Назад к ноутбуку
cd devproject
git remote add origin ssh://myserver.com/home/sam/devproject.git
На рабочем столе (??)
git clone <..>
Ответы
Ответ 1
Вы клонируете репозиторий, но вы отслеживаете ветку. Выбранная команда проверки не завершена:
git checkout --track -b new_local_branch_name origin/remote_branch_name
Таким образом, требуемые шаги:
- Клонировать удаленный репозиторий.
- Отслеживать удаленные ветки.
Ответ 2
Приведенная выше команда не будет работать, если вы не находитесь в репозитории. Чтобы работать с git, вы всегда должны сначала создать репозиторий, либо путем клонирования того, который уже существует, либо с помощью git-init
и начиная с нуля.
git checkout --track -b <branch> <remote-branch>
git checkout --track <remote-branch>
Эти две команды создают новую локальную ветвь для отслеживания <remote-branch>
. Первый из них вручную называет его <branch>
; второй использует то же имя, что и удаленный.
Помните, что отслеживание не означает автоматическое обновление - оно просто делает такие вещи, как указание, где ветка должна нажать/вытащить и позволить статусу git дать те, "ваша ветка отстает от начальника/хозяина на 5 коммитов, и может быть быстро пересылаемых" сообщений.
Ответ 3
Когда вы используете
git checkout --track -b local_branch_name origin/remote_branch_name
(обычно с именем "local_branch_name" то же, что и "remote_branch_name", для которого существует ярлык:
"git checkout -b --track origin/branch_name" ), это означает, что вы создаете локальную ветвь с именем "local_branch_name", на которой вы можете создавать коммиты, для которых ветка восходящего потока будет ветвь удаленного отслеживания с именем 'remote_branch_name' (которая отслеживает/следует этой ветке удаленного отслеживания).
Вам нужно помнить, что вы не можете напрямую связываться с "origin/remote_branch_name"; эта ветка удаленного отслеживания предназначена для отслеживания развития ветки "remote_branch_name" в удаленном "источнике" ( "origin" - это имя по умолчанию удаленного удаленного, с которого вы клонировали).