Как заставить git «видеть» удаленную ветку для репо, который был клонирован с --single-branch? - PullRequest
0 голосов
/ 26 октября 2019

У меня есть хранилище, где git не видит origin / master. Первоначально он был клонирован с опцией "--single-branch stable". Это огромный репозиторий, и теперь мне нужно также использовать origin / master. Я не хочу повторно клонировать весь репо, потому что он действительно огромный и занимает много времени.

Вот пульты:

# git remote -v                                                                                                                                                              
origin  git@gitlab.not_telling.com:group_name/project_name.git (fetch)
origin  git@gitlab.not_telling.com:group_name/project_name.git (push)

ВотПервая строка "git log":

commit 7e43bd67a31313ce6f09c79ce27f5a40026bf358 (HEAD -> master, tag: uat_2019-10-25, tag: stable_2019-10-25, origin/stable, stable)

Локальные ветви, известные git: master и stable. Удаленная ветвь, известная git: origin/stable, но origin/master отсутствует.

Если я пытаюсь сбросить стабильный на origin / master:

git checkout stable
git reset origin/master --hard
fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

Если я пытаюсь установить upstream:

# git branch --set-upstream-to master origin/master                                                                                                                         
fatal: branch 'origin/master' does not exist

Если я попытаюсь получить:

# git checkout master && git fetch -v
Already on 'master'
From gitlab.not_telling.com:group_name/project_name
= [up to date]        stable     -> origin/stable

Кроме того, если я попытаюсь перечислить все ветви с git branch -a, то origin / master не будет там:

* master
  stable
  remotes/origin/stable

Как я могу заставить git "знать" о происхождении / мастере?

1 Ответ

1 голос
/ 26 октября 2019

Вы можете добавить удаленную ветвь в список выборки, отредактировав свой файл .git / config и добавив мастер в ваш удаленный раздел «origin»:

[remote "origin"]
    url = git@gitlab.not_telling.com:group_name/project_name.git
    fetch = +refs/heads/stable:refs/remotes/origin/stable
    fetch = +refs/heads/master:refs/remotes/origin/master

Затем выполните выборку:

git fetch origin

Теперь origin / master должен появиться как ссылка в вашем локальном репозитории. (Вам все еще может понадобиться создать локальную ветку master, если она вам нужна).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...