Получить полную историю коммитов из удаленной ветки в локальную ветвь - PullRequest
1 голос
/ 17 апреля 2019

Недавно я хотел клонировать большой репозиторий, поэтому я в итоге клонировал одну ветвь.

git clone --single-branch dev git@github.com:xyz/abc.git

В этом репо есть еще несколько веток, а именно stage & master.

Теперь мой локальныйклон имеет только ветку dev.

Мой вопрос: как мне теперь оформить заказ на ветку stage?

Я пытался очистить ветвь сирот git checkout --orphan stage, но это не таквозможность получить полную историю коммитов из ветки удаленного этапа

Ответы [ 3 ]

1 голос
/ 17 апреля 2019

git clone --single-branch dev git@github.com:xyz/abc.git должен был выйти с ошибкой, говорящей fatal: repository 'dev' does not exist.Возможно, вы пропустили -b или --branch до dev?

В вашем случае git checkout --orphan stage создаст потерянную ветку stage из последнего коммита dev.Это не то, что вы хотите.

История stage еще не полностью извлечена.Чтобы получить stage и создать локальный stage:

git fetch origin stage:stage

Checkout stage:

git checkout stage

Таким образом, локальный stage может не иметь восходящей ветви.Позже вы можете запустить git push origin -u stage:stage.

Если вы намереваетесь создать локальную сиротскую ветку foo из stage, вы можете запустить:

git fetch origin stage --depth 1
git checkout --orphan foo FETCH_HEAD
git commit
1 голос
/ 17 апреля 2019
  • Извлечение 1 или всех удаленных веток на локальный компьютер.
  • Переключение на нужную ветку
  • Извлечение последних изменений из удаленного хранилища.

    git fetch --all // All branch fetch
    
    git fetch <remote> <remote_branch_name> // Single branch fetch
    
    git checkout <remote_branch_name>
    
    git pull <remote> <branch_name>
    

ПРИМЕЧАНИЕ. Вы можете просмотреть историю коммитов любой ветви, не переключаясь на эту конкретную ветку, используя

   git log <branch_name>
1 голос
/ 17 апреля 2019

Вы можете сделать что-то вроде:

git fetch <remote> <remote_branch>:<local_branch>
git checkout <local_branch>

Пример:

git fetch origin stage:stage
git checkout stage

Это загружает ссылки / объекты из удаленной ветви stage и создает локальную ветку с именем stageс полной историей.

...