我们为公司提供开发服务,他们也从另一家公司获得服务,他们不希望他们了解我们。
他们正在使用我完全访问的git存储库(但我必须避免向它写任何内容),而且我们还有另一个存储库用于我们自己的开发。
我想每周一次用他们的代码更新我们的主分支,同时我想继续将我们的开发推向另一个分支。在其他公司开发完成后,我计划将我们的开发项目合并到我们的主分支机构准备发布。
同时保持其他公司的发展历史也会很棒!
我正在使用SourceTree作为GIT界面,任何使用它的指令都会很棒!
我应该遵循什么样的流程?
答案 0 :(得分:1)
由于您需要从其他公司的分支机构合并到主分支机构,因此这是无关历史记录合并。但SourceTree不支持合并--allow-unrelated-histories,因此您最好使用git command line
。下面是git命令供您参考:
git clone <URL for your own repo>
git remote add otherrepo <URL for the other company’s repo>
git pull otherrepo #pull otherrepo to your local repo
git merge otherrepo/master --allow-unrelated-histories #merge otherrepo’s master branch to your local master branch
在更新了其他公司的回购后,您需要再次使用git pull otherreop
和git merge otherrepo/master --allow-unrelated-histories
。
完成所有操作后,您可以使用git checkout master
和git merge develop
将开发分支合并到主分支。
答案 1 :(得分:0)
您的本地仓库可以指向多个远程仓库。 指向远程仓库的对象称为&#34;远程&#34;。 通常,您克隆的远程仓库将在本地仓库中命名为origin。 您可以使用其他名称(例如,客户来源)创建远程。 然后,您可以从客户来源克隆,创建一个本地分支进行处理,并将该分支推送到您公司的仓库(可能称为原产地)。 然后,当您想要从客户更新时,切换回从中克隆的分支,并从名为customer-origin的远程中拉出。 然后,您可以将其合并到您的开发分支。 在sourcetree中我已经读过设置 - &gt; add是添加新远程的地方,但我不是使用源代码树的专家。
答案 2 :(得分:0)
首先,您可以将其他公司代表添加为新的远程
git remote add companyName https://github.com/user/repo.git
每周更新:
如果这是更改主服务器的唯一方法,则不会产生任何冲突。我想这个修补程序将出现在 companyName master 。
中发布合并:
只需正常合并,使用:git merge dev
并解决冲突。
希望有所帮助
编辑:
ps:你也可以使用&#39; git flow&#39;在开发和发布......它将防止一些问题xD