2016-08-01 144 views
1

我有3个文件夹(每个git回购),说DevUATPrototype。我希望我的Dev分支成为主,并且我希望这些存储库显示为分支。如何添加2个其他git仓库作为我的仓库的分支?

到目前为止,我正在考虑将远程连接到每个文件夹(使用其内部的git),然后以某种方式将它们与--unrelated标签合并。我将如何为3个分支做这件事?我试过但没有工作。

为了澄清,当我在Dev文件夹做git branch,我想看看masterPrototypeUAT到apppear为分行。提前致谢!

+0

您所描述的内容称为'git submodule' –

回答

0

标记有一个版本的发布

cd <Dev Path> 

git remote add UATremote <Path to UAT Folder Repo> 
git fetch UATremote 
git checkout -b UAT UATremote/master 

git remote add PROTOremote <Path to ProtoType Folder Repo> 
git fetch PROTOremote 
git checkout -b Prototype PROTOremote/master 

然后有选择地清理遥控器:

git remote rm UATremote 
git remote rm PROTOremote 
+0

是的,这正是我想要做的以及我到目前为止所做的。如果我做'git checkout -b UAT HEAD',那是不好的?我为他们每个人做了头,我认为这是我出错的地方。 – HiWorld

+0

这并不坏,这取决于你想达到什么。如果你运行'git checkout -b UAT HEAD',那么将会创建一个新的分支并使用代码在你当前的本地HEAD指向的任何地方结算出来。相反,我怀疑你想要使用其他git仓库代码的新分支机构?你可以通过使用他们的主分支进入你的'Dev'文件夹。 I.e:'git checkout -b NewBranch myRemote/master' – nightherb

+0

你也可以运行'git branch -d UAT'来删除你之前创建的分支 – nightherb

0

您只需添加新的远程

git remote add remote2 <url> 

,现在你可以检出任何分支形成远程任意给定到存储库。

+0

如何执行结帐?只需'git checkout remote2'? – HiWorld

+0

是的。如果你有相同的名字,你将不得不使用远程名称,尝试,你会立即得到它 – CodeWizard

1

尽管子模块是最基本的答案,但我建议您不要那样做,因为我认为您尝试以错误的方式扭曲工具。

你想要不同的环境,是的,这是大多数商店常见的,包括我工作的和我认识的其他人。

我建议你有一个主分支和一个存储库。

当你推出不同的版本,你可以的,如果你想添加其他存储库作为分支机构在现有开发混帐回购协议,那么你可以做以下使用通用版本系统

+0

我不能改变公司的工作流程,对不起。 – HiWorld

+0

噢,是的,如果你觉得你的公司做错事情并产生大量浪费,你应该改变它。随意查看部署工具,这些工具也是一次构建包并部署在每个环境中的。这是更好,更可持续的做法。 – Philippe

+0

是的,您不能更改公司工作流程。你可以做的是成功案例。不是2分钟的对话,而是全面的“我相信质量和基本的工程原则”。与私人人员一起私下做这件事。同时疯狂地寻找新工作,并在被问及为什么要离开你目前的工作/你在新工作中寻找什么时使用同样的理由 - 你的态度将在专业商店受到尊重。 –

0

I b elieve您正在描述使用submodules。如果要将存储库保存在另一个存储库中,则可以在场景中使用它们。当您希望保留所有参与者更新的项目中使用的库或APi时,可能会出现此要求。

为了一个submodule添加到您当前仓库使用

git submodule add <url> 

哪里是你从GitHub或任何抢URL。记住submodules只是存储库这样的工作流应用...首先您需要导航到它就像你通常在bash

非常重要

与子模块工作时做回购之内你的回购工作你不要自动启动分支。这必须手动完成,所以当您在submodule之前进行任何工作时,请不要忘记执行git checkout master ...

+0

这非常有趣。 – HiWorld