2015-01-21 44 views
0

我是一个相对较新的GIT,所以我不想乱它太多,因为我意外删除了一些东西。无论如何,目前我有一个分行,我在过去的几个月里一直在分行,合并和推动单个回购 - 迄今为止这么好。现在我的项目已经到了一个阶段,我需要创建三个不同的版本。我现在想要做的是创建主分支的三个单独副本,并有能力将他们推送到他们自己的独立Github回购。我知道这里已经有很多关于克隆等的内容了,但是我认为如果我只是为了确保我不会搞砸任何东西而最好。谢谢 !使用git创建三个独立的分支,并将分支推送到三个新的回购

回答

0

一旦你创建了Github上回购,去到你的工作副本,做

git remote add g1 <URL OF REPO1> 
git remote add g2 <URL OF REPO2> 
git remote add g3 <URL OF REPO3> 

现在你有三个新的遥控器叫做g1g2g3

做一个inital其状态的读取:

git fetch g1 
git fetch g2 
git fetch g3 

然后继续前进,把你的当前状态master有:

git push -f g1 master:master 
git push -f g2 master:master 
git push -f g3 master:master 

-f标志强制推,以防万一那有一些问题,因为历史不匹配或不管。你不应该需要进一步的推动。

然后,创建远程master分支的本地表示:

git branch github1-master g1/master 
git branch github2-master g2/master 
git branch github3-master g3/master 

DONE。


除了这个:三个版本设置了三个回购之前,检查是否这些版本不能在一个回购具有不同配置的托管/建造的脚本/不管。 3回购解决方案有巨大的缺点,您需要将master中引入的大部分更改引入所有三个版本分支(github1-master .. github3-master)。

更简单的解决办法是有一个回购提供3种不同的构建环境,您可以设置你的3种产品。

+0

@Mike:jep。只需执行你的工作副本所在的命令(即下面有'.git'目录的目录) – eckes 2015-01-21 10:27:39

+0

谢谢!我稍后再说。还有几个问题;当你说“去你的工作副本”,你的意思是我应该在我的.git文件所在的主目录中运行“git remote add”命令?其次,我知道你在回答中提到了这个问题,但是如果在稍后阶段,我不得不将主人的变更合并到所有三个分支中,这将如何实现。再次感谢 ! – Mike 2015-01-21 10:38:29

+0

@Mike:最好是没有三个分支。如果你坚持,你可以选择“樱桃采摘”或“合并”。这取决于变化有多大以及“主”分支与其他三个分支之间的差异有多大。再一次:如果你可以通过配置解决它,我建议使用,而不是3个产品分支... – eckes 2015-01-21 10:45:18

相关问题