Подтвердить что ты не робот

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 <..>
4b9b3361

Ответ 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" - это имя по умолчанию удаленного удаленного, с которого вы клонировали).