我有两个GIT存储库,一个用于工作,一个用于独立开发。我的公司表达了对我一直致力于的项目的兴趣,并希望我将该分支(主)迁移到他们的回购(功能/发电机)上的新分支。 I have created a migrator in the past但这会破坏被推送的回购,因为它是直的 - 然后 - 镜像。为了将分支从一个存储库移植到另一个存储库(在此过程中创建新分支),我需要做些什么?
答案 0 :(得分:2)
另一种方法是添加另一个遥控器。
git remote add ehime https://github.com/your_username/your_repo_name.git
现在你所做的所有事情都是
git push origin some_branch
也可以
完成git push ehime some_branch
为另一个遥控器。
因此两个遥控器只有一个代码目录。
对于共享文件,在执行合并(例如
)时有很多选项git checkout branchA
git merge ours branchB
或
git checkout branchA
git merge -X theirs branchB
控制两个代码库之间的合并方式。
答案 1 :(得分:0)
一种简单的方法是在一台机器上克隆两个repos,然后在"到#34; repo git checkout -b new_branch
然后从其他项目目录中逐字cp
个文件。 git add和git commit,你就完成了。正如我上面提到的,这是否有效将取决于你是否有相同的目录/文件名。如果你这样做会遇到合并冲突,那么两个不同的文件将会以非常糟糕的方式一起被粉碎。
答案 2 :(得分:0)
从理论上讲,这是你可以做的,但我认为你有更好的服务有两个不同的存储库。 注意:这不会带来您的整个git历史记录,只会将项目的最新状态添加为分支。
$ git checkout -b OtherProject
-- to prevent losing your git database
$ mv .git/ /temp/gitBackup
-- clear out all the stuff from the main repository
$ rm -rf *
-- copy contents of the tip of master from your other project
-- but not the .git/ folder
$ cp -r /path/to/personal/project/* .
$ rm -rf .git/
-- bring back your old .git folder
$ mv /temp/gitBackup ./.git
-- add all your new files to this branch
$ git add -A .
$ git commit -am "The other project is now in this repo as a branch"
同样,这不是推荐的行动方案。您的git数据库将变得更大,这不是分支机构的预期用途。我强烈建议每个项目使用一个存储库,并且可能使用submodules来管理git存储库中的子项目。