Перемещение из существующей локальной ветки в новый онлайн-репозиторий

По сути, у нас есть master и testing-stage в нашем онлайн-репозитории.

В настоящее время я подключен к testing-stage и обновляюсь с моим локальным. Теперь стадия тестирования объединена с master.

Затем произошло то, что testing-stage был удален вручную на веб-сайте gitLab, затем был создан новый репозиторий с именем test, он идентичен мастеру, который завершил слияние, как указано выше. Теперь я внес некоторые изменения и хотел бы оформить заказ и нажать на test, но мой текущий локальный репозиторий прослушивает предыдущий testing-stage, который теперь удален. Что я могу сделать лучше всего?


person KiritoLyn    schedule 24.01.2019    source источник


Ответы (3)


Учитывая, что я правильно понял вашу проблему...

Запуск git remote -v позволит вам увидеть ваши удаленные URL-адреса.

Что вы можете сделать, так это удалить старый удаленный URL-адрес, указывающий на старый репозиторий:

git remote rm remote_name

Я подозреваю, что имя будет origin.

Затем вы можете добавить новый удаленный указатель на новый репозиторий:

git remote add origin url_to_new_repository

Вы также можете просто добавить новый удаленный URL-адрес, не удаляя старый, и в этом случае у вас будет два разных удаленных URL-адреса.

person Eldy    schedule 24.01.2019

Я бы сделал так:

  1. Клонируйте репозиторий test, чтобы иметь его локально
  2. Посмотрите измененные файлы в testing-stage с git status
  3. Скопируйте/вставьте все эти измененные файлы в папку проекта репозитория test
  4. Отправьте модификацию в удаленный репозиторий test
person veben    schedule 24.01.2019

Я предлагаю выбрать ваши изменения из вашей текущей ветки в основную ветку из теста. То есть:

  • изменить удаленный URL:

    git remote rename origin oldorigin
    git remote add origin $test_url
    
  • дайте новое имя вашей текущей ветке:

    git checkout -b mybranch
    
  • переключитесь на ветку master и потяните:

    git checkout master
    git pull -u origin master:master
    

    Теперь локальная ветка master должна быть синхронизирована с веткой master из тестового репозитория.

  • вишневый выбор ваших изменений. Для каждого из ваших новых коммитов:

    git log mybranch # find id of your commit
    git cherry-pick $commit_id
    
  • наконец, нажмите на мастер теста

    git push
    
person Clauz    schedule 25.01.2019