GIT клонирует ветку на более старый коммит в другом каталоге
У меня 2 каталога одного и того же проекта, пусть они называются каталогами A и B.
Эти две папки были клонированы из основного репозитория git в другом месте, поэтому они оба начали с одного и того же коммита git репо.
Теперь A остался с исходным кодом, исправил несколько незначительных ошибок и зафиксировал изменения, поэтому ветка Git выглядит так:
A: (original)-(bug fix 1) - (bug fix 2) - (bug fix 3)
В то время как B, я решил изменить внешний вид приложения, но я еще не зафиксировал. так что ветка B git выглядит так:
B: (original)
Я хотел бы объединить эти 2 репозитория git с оригинальным клоном, чтобы у меня было следующее:
A: (original)-(bug fix 1) - (bug fix 2) - (bug fix 3)--------(merge both)
\ /
branch B: \ -----------------(New version look) -------------
2 ответа
Если вы можете вернуться к этому репо, но вы не хотите подталкивать B
, вы можете:
- иди к своему местному клону
добавьте локальный клон B в качестве удаленного:
git remote add repoB ../B
получить и объединить:
git fetch repoB git checkout A git merge repoB/B
Здравствуйте, у меня есть 2 каталога одного проекта, пусть они называются каталогами A и B. Эти две папки были клонированы из основного репозитория git в другом месте,
Вместо клонирования используйте репозитории
git worktree
Git Worktree была введена в 2007 году под contrib
папка в git repo и называлась new-workdir
, В git v2.5 это было переименовано в worktree
,
Самый простой синтаксис такой:
git worktree add <second path>/<branch name>
создаст другую папку на вашем компьютере, которая позволит вам работать в разных ветках одновременно.
git worktree
создаст 2 отдельные рабочие папки, отделенные друг от друга, указывая на один и тот же репозиторий.
Это позволит вам проводить любые эксперименты на новом рабочем дереве, не оказывая никакого влияния на сам репозиторий. На прикрепленном изображении вы видите, что есть 2 отдельные рабочие папки, но обе они используют один репозиторий и делятся контентом.
Вот пример того, как создать новое рабочее дерево и каков его результат:
Я хотел бы объединить эти 2 репозитория git с оригинальным клоном, чтобы у меня было следующее...
Теперь, когда вы работаете с одним и тем же хранилищем, вы можете merge
, cherry-pick
без необходимости тянуть или толкать пульт, так как вам не нужно использовать пульт.
все местные!