将GIT分支克隆到另一个存储库GIT分支?

时间:2015-04-23 21:12:10

标签: git bash github migration .git-info-grafts

我有两个GIT存储库,一个用于工作,一个用于独立开发。我的公司表达了对我一直致力于的项目的兴趣,并希望我将该分支(主)迁移到他们的回购(功能/发电机)上的新分支。 I have created a migrator in the past但这会破坏被推送的回购,因为它是直的 - 然后 - 镜像。为了将分支从一个存储库移植到另一个存储库(在此过程中创建新分支),我需要做些什么?

3 个答案:

答案 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存储库中的子项目。