Никогда не пользовался гитом больше чем просто личной системой сохранения последовательных изменений. Т.е. один пользователь и никаких ветвлений, через tortoisegit. Делал commit и show log для того чтобы например посмотреть, что я изменил после чего что-то сломалось.
А тут случилось такое что сделал clone и внес там некоторые изменения, а в основном репозитории — другие изменения. Нужно как-то из клона эти изменения влить в основной репозиторий. как?
Здравствуйте, coder9999, Вы писали:
C>А тут случилось такое что сделал clone и внес там некоторые изменения, а в основном репозитории — другие изменения. Нужно как-то из клона эти изменения влить в основной репозиторий. как?
1. Сделать fetch этих изменений в другую ветку.
2. По вкусу, сделать или merge со своими изменениями, или для своих rebase относительно состояния основного репо.
3. Проверить работоспособность получившегося.
4. Сформировать pull request для основного репо, если у него другой владелец, или прямо сделать push, если есть такие права (технические и административные) и уверенность в результате.
В зависимости от конкретных особенностей, pull request заменяется на посылку на ревью и т.п.
Здравствуйте, coder9999, Вы писали:
C>Никогда не пользовался гитом больше чем просто личной системой сохранения последовательных изменений. Т.е. один пользователь и никаких ветвлений, через tortoisegit. Делал commit и show log для того чтобы например посмотреть, что я изменил после чего что-то сломалось. C>А тут случилось такое что сделал clone и внес там некоторые изменения, а в основном репозитории — другие изменения. Нужно как-то из клона эти изменения влить в основной репозиторий. как?
Клон и основной репо твои?
Если да — делаешь "git push" из клона в основной репо: "git push origin master:new_temp_remote_branch", после чего в основном репозитории делаешь "git checkout master && git merge new_temp_remote_branch && git branch -d new_temp_remote_branch" и всех делов. Плюс — просто, минус — получается ненужное ветвление истории гита, что довольно бесполезно когда патчей мало.
Если нет — закачиваешь в клон нового мастера из основного репозитория — "git fetch origin master", в клоне делаешь "git rebase --onto origin/master <тут_sha1_или_тэг_старого_мастера>" — эта штука "проиграет" все коммиты от <тут_sha1_или_тэг_старого_мастера> до конца твоей ветки в клоне поверх нового мастера с основного репозитория. Из полученной ветки можно слать pull-request или как в варианте "да" выше. Плюс — pull request только так сделать и можно и история будет линейная (проще делать bisect), минус — новые патчи применяются поверх другой истории и возможно надо всё тестить по-новой.
Здравствуйте, coder9999, Вы писали:
C>А тут случилось такое что сделал clone и внес там некоторые изменения, а в основном репозитории — другие изменения. Нужно как-то из клона эти изменения влить в основной репозиторий. как?
Из клона делаешь pull, merge origin/master, push. В основном появляются сведенные изменения.