2012-04-20 2 views
3

Я загрузил сторонний проект в качестве незаписанных файлов (без .git-папки) и запустил новый git-репозиторий с $git init, чтобы отслеживать мои изменения.Как изменить новый репозиторий git в ветку из другого репо?

Позже выяснилось, что этот проект уже имеет публичный репозиторий git, который имеет то же состояние, что и голые файлы, которые я загрузил (идентичен моей первоначальной фиксации).

Что я должен сделать:

Клонирование удаленный репозиторий и сделал новую локальную ветку, а затем толкнул его на пульте дистанционного управления.

То, что я на самом деле сделал:

Просто взял файлы и начал чистый локальный GIT репозиторий (мастер) в ней и сделал несколько фиксаций.

Что я хочу сделать:

Включите мой местные первоначальные фиксации в ветвь удаленного репо (изменить его родитель) и сохранить изменения я уже сделал.

Я предполагаю, что это должно быть возможно, но я не знаю достаточно Гит.

Спасибо!

ответ

3

Ну, вы можете попробовать следующее (вы можете использовать другое имя, чем origin, до вас):

  1. git remote add origin url_of_project_repository
  2. git fetch origin
  3. git rebase FETCH_HEAD

Вы имеют существенные шансы, что git фактически будет фигурировать на вашей базе, а новый пульт - фактически тот же набор файлов, и разрешит фальшивую слияние co nflict, пропуская что-либо, кроме ваших изменений.

Если это не работает peroperly, вы также можете клонировать «реальный» репозиторий где-то в другом месте, а затем повторно применять свои изменения поверх него (и было бы бесчисленное множество способов сделать это, из очень ручной DIY путь к некоторым более автоматическим средствам).

+0

Это проще, чем я предполагал. Как вы и предсказывали, git автоматически попытался угадать, где начались мои изменения, и применил их к происхождению, но применил их к мастер-ветке. Любые идеи о том, как сделать мои коммиты, принадлежат к новой ветке? –

+0

Итак, вы перенесли свою работу поверх истории первоначального пакета. Вам нужно только переименовать локальную ветвь «master» 'git branch -m master your_branch_name'. – Romain

2

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

Смежные вопросы