Сделать существующую ветку Git отслеживающей удаленную ветку?

foreach (DataRow row in dt.Rows)
    row.SetField<string>("Comment", 
       row.Field<string>("Comment").Replace("*", @"\n"));
3374
задан Pat Notz 23 May 2014 в 19:39
поделиться

6 ответов

Для данной ветки foo и удаленного восходящего потока :

Начиная с Git 1.8.0:

git branch -u upstream/foo

Или, если локальная ветвь foo является не текущая ветвь:

git branch -u upstream/foo foo

Или, если вы хотите вводить более длинные команды, они эквивалентны двум указанным выше:

git branch --set-upstream-to=upstream/foo

git branch --set-upstream-to=upstream/foo foo

Начиная с Git 1.7.0:

git branch --set-upstream foo upstream/foo

Примечания:

  • Все вышеперечисленные команды будут заставить локальную ветвь foo отслеживать удаленную ветку foo от удаленного восходящего потока .
  • Старый синтаксис (1.7.x) не рекомендуется в пользу нового синтаксиса (1.8+). Новый синтаксис должен быть более интуитивным и более легким для запоминания.
  • Определение восходящего потока не удастся с вновь созданными пультами, которые не были извлечены. В этом случае заранее запустите git fetch upstream .

См. Также: Почему мне все время нужно использовать `--set-upstream`?

4179
ответ дан 17 December 2019 в 16:00
поделиться

Редактирование .git/config является, вероятно, самым легким и самым быстрым путем. Это - то, что команды Мерзавца для обработки удаленных ответвлений делают, так или иначе.

, Если Вы не хотите унавоживать с файлом вручную (и дело не в этом трудно, чтобы сделать), можно всегда использовать git config, чтобы сделать это..., но снова, это просто собирается отредактировать .git/config файл, так или иначе.

существуют, конечно, способы автоматически отследить удаленное ответвление при использовании git checkout (путем передачи эти --track флаг, например), но эти команды работа с новый ответвления, не существующие.

22
ответ дан mipadi 24 May 2014 в 06:39
поделиться
  • 1
    @Wayne: Такой юмор отдельно делает его неподходящим для производства! (I' m шутящий об этом являющийся причиной против использования его, даже при том, что я закатываю глаза каждый раз, я сталкиваюсь с ним). – Andrew Grimm 10 June 2011 в 23:57

Вы могли бы найти git_remote_branch инструмент полезный. Это предлагает простые команды для создания, публикации, удаления, отслеживая & переименование удаленных ответвлений. Одна хорошая функция - то, что можно попросить grb команда объяснять, какой мерзавец управляет, чтобы она выполнилась бы.

grb explain create my_branch github
# git_remote_branch version 0.3.0

# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch
54
ответ дан James Mead 24 May 2014 в 06:39
поделиться

Можно сделать следующее (предполагающий, что Вы проверяетесь на ведущее устройство и хотите продвинуть удаленному ведущему устройству ответвления):

Настроенный 'удаленные', если у Вас уже нет его

git remote add origin ssh://...

Теперь, настраивают ведущее устройство для знания для отслеживания:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

И нажатие:

git push origin master
231
ответ дан Josh 24 May 2014 в 06:39
поделиться
  • 1
    RVM приносит немного менее потрясающий к серверу, запускающему отдельное приложение, чем он делает к серверу, запускающему несколько приложений. Но в любом случае не может быть отклонена его ужасность.:) – bowsersenior 13 June 2011 в 16:42

Для 1.6.x это можно сделать с помощью инструмента git_remote_branch :

grb track foo upstream

Это заставит Git создать трек foo upstream / foo .

15
ответ дан 17 December 2019 в 16:00
поделиться

Я считаю, что уже в Git 1.5.x вы можете сделать так, чтобы локальная ветка $ BRANCH отслеживала удаленную ветку origin / $ BRANCH , нравится.

Учитывая, что $ BRANCH и origin / $ BRANCH существуют, и вы в настоящее время не проверяли $ BRANCH (отключите, если у вас есть), do:

git branch -f --track $BRANCH origin/$BRANCH

Это воссоздает $ BRANCH как ветвь отслеживания. -f форсирует создание, несмотря на то, что $ BRANCH уже существует. - трек является необязательным, если используются обычные значения по умолчанию (то есть параметр git-config branch.autosetupmerge имеет значение true).

Обратите внимание: если origin / $ BRANCH еще не существует, вы можете создать его, вставив локальный $ BRANCH в удаленный репозиторий с помощью:

git push origin $BRANCH

Затем следует предыдущая команда, чтобы превратить локальную ветвь в ветвь отслеживания.

43
ответ дан 17 December 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: