Дополнительная история
Сохраните исходную запись фиксации и перенесите проект Git
Чтобы обеспечить непрерывную интеграцию проекта Git + Gerrit + Jenkin, мы перенесли проект с Git на Gerrit и обнаружили, что некоторые коллеги отправляли код в старом Git, поскольку Геррит выполнял синхронизацию, когда появляется новый отправка на Gerrit Обновит старый git, который очистит отправленный им код. На данный момент мне нужно объединить и отправить два похожих проекта, а затем отправить код только для нового проекта.
Шаги миграции
git clone загрузите старый проект и поместите его в каталог проекта
git remote add [shortname] [url]
Добавьте новый URL-адрес Git в наш старый Git localЗдесь я назвал его git_new (как хотите)
Используйте команду для
git remote -v
просмотра ситуации на удаленном складе, параметр -v может видеть URL-адрес каждого хранилищаЗдесь у нас есть два удаленных склада, названных
git_new
,origin
Убедитесь, что текущий склад чистый
Отправьте код на новый склад, git push git_new master
Строка
git_new
относится к соответствующему адресу склада, который является псевдонимом, который мы только что взяли. Мастер представляет ветку, которую вы хотите отправить. Вы можете выбрать любой
Мы можем сравнить, что мы успешно перешли из проекта git_test в проект git_test_new, но только главная ветвь отправлена. Чтобы протолкнуть другие ветки, просто переключите ветки и нажмите снова!
Почему только старый проект Git может отправлять код в новый проект?
Размышление: почему можно только протолкнуть код из старого в новый, а не объединить код старого проекта в новый?
Поскольку слияние кода старого проекта с новым проектом - это отправка нового кода для нового проекта, поэтому только текущий отправляющий пользователь может отправлять, но в истории кода есть записи отправки других людей, и Git не позволит это. Если все не изменится на одного человека
Если в старом проекте, порядок передачи кода в новый проект является логикой передачи существующего кода в существующий склад.
резюме
На этот раз у нас есть более глубокое понимание следующих команд
git remote # Без параметров, перечислить существующие удаленные склады git remote -v # Вывести подробную информацию, включая имя и URL удаленного склада git remote add [короткое имя] [url] # Добавить удаленный склад
ps: git remote add
После этого вы также можете использовать git cherry-pick commit-id
для разных складов commit
консолидации, заинтересованные друзья могут попробовать это самостоятельно, эту команду можно использовать на складе, в перекрестных ветвях, перекрестных проектах.
Секрет переноса старых проектов с сохранением истории коммитов заключается в
git clone старый проект
git remote добавить gerrit добавить новый проект git ссылка
cd 项目名
На данный момент мы находимся в существующем кодеgit push gerrit master
В настоящее время существующий код помещается в существующий проект.