У меня уже есть локальная главная ветка, отслеживающая удаленную главную ветку проекта github. Теперь мой сотрудник создал новую ветвь в том же проекте, и я хочу сделать следующее:
- создать новую ветку локально
- сделайте эту новую ветку отслеживающей вновь созданную удаленную ветку.
Как я должен сделать это правильно?
git
github
git-branch
MLister
источник
источник
git checkout -t <remote>/<whatever>
. Если есть только одна ветвь удаленного отслеживания, которая заканчивается на<whatever>
вас, вы можете просто сделатьgit checkout <whatever>
и угадайте, что вы имеете в виду.Ответы:
Первая команда гарантирует, что у вас есть удаленная ветвь в локальном хранилище. Вторая команда создает локальную ветку, которая отслеживает удаленную ветку. Предполагается, что ваше удаленное имя
origin
и ветвь имяbranch-name
.--track
опция включена по умолчанию для удаленных филиалов, и вы можете опустить ее.источник
git checkout <branchname>
и git автоматически проверит ее и настроит отслеживающую ветку. Просто хотел повторить то, что @Mark Longair сказал выше в этом комментарии: stackoverflow.com/questions/11262703/… .remotes/origin/develop
? Разве это не должно быть простоorigin/develop
? Это одно и то же?git fetch --all
, иначе новые ветви не были быcmd
, затмение обнаружит новую ветвь?Если у вас нет локальной ветки, это действительно так просто:
Например, если вы получаете и появляется новая ветка удаленного отслеживания
origin/feature/Main_Page
, просто сделайте это:Это создает локальную ветвь с тем же именем, что и удаленная ветвь, отслеживая эту удаленную ветвь. Если у вас есть несколько пультов с одним и тем же именем филиала, вы можете использовать менее двусмысленное:
Если вы уже создали локальную ветку и не хотите ее удалять, см. Как сделать так, чтобы существующая ветка Git отслеживала удаленную ветку? ,
источник
git checkout 1.5-branch
(remotes/upstream/1.5-branch
находится в выходных данныхgit branch -a
) приводит кerror: pathspec '1.5-branch' did not match any file(s) known to git.
изменению этого значения, чтоgit checkout upstream/1.5-branch
приводит к отключению HEAD, и локальная ветвь не создается. Я думаю, что эта часть ответа просто неверна. Это с мерзавцем 2.4.3<remote>/<branch>
. Удаленная ветвь отслеживания доступна только для чтения, указывая, где эта ветвь была на удаленной при последней загрузке. Вызовcheckout
этой ветки ref переводит вас в режим HEAD, как говорит Петр. Обратите внимание, что указание удаленной ветви для выборки позволяет избежать создания нежелательных удаленных ветвей отслеживания.git checkout feature-branch
. Я НЕ предлагаю использовать команду,git checkout origin/feature-branch
которая, как вы оба указали, приведет к бесполезной отстраненной голове.Прежде всего, вам нужно получить удаленный репозиторий:
Затем вы можете создать новую ветку и настроить ее для отслеживания удаленной ветки, которую вы хотите:
Вы также можете использовать "git branch --track" вместо "git checkout -b", как указано max.
источник
checkout -b
используете удаленную ветвь в качестве отправной точки, то на самом деле ее не нужно использовать--track
.git checkout <branchname>
, и есть удаленная ветвь с тем же именем (после того, как вы сделали agit fetch
), то локальная ветвь будет автоматически настроена для отслеживания удаленной.Когда филиал не является удаленным филиалом, вы можете направить свой локальный филиал непосредственно к удаленному.
или когда у вас есть ветка разработчика
или когда существует удаленная ветвь
Существуют и другие возможности подтолкнуть удаленную ветвь.
источник