如何使用 Git 和 Bitbucket 在两个存储库之间共享文件?



我正在构建一个web应用程序,它有两个独立的组件:在用户浏览器中运行的前端(Javascript+Angular)和在我的服务器上运行并向所有前端提供数据的后端REST Api(Python/Django)。该应用程序的两个部分被放置在两个独立的Git存储库中,并存储在BitBucket中。

前端向用户显示数据,赢得了一个漂亮的界面,其中定义了许多漂亮的CSS。后端向用户发送电子邮件。

我希望电子邮件的外观和感觉与前端的显示完全匹配。所有用户的交互都应该有一个统一的表示。那么,我应该把CSS放在哪里/如何放置,以便它在两个存储库中都可用,但我只需要在一个地方对它进行更改??

我如何使用我正在使用的工具做到这一点:Git&Bitbucket?

我认为CSS应该放在一个单独的"第三"项目中

特别是因为您甚至可能想为另一个项目重用漂亮的CSS,或者将现有项目分解为更多的存储库。

因此,策略是:

  1. 创建第三个存储库,例如project_css
  2. 在两个当前项目中,使用git subtreegit submodule添加对该存储库的引用

例如,如果您希望git subtree将第三个项目的文件作为两个现有项目的一部分,那么您可以使用类似以下的博客/教程:

https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/

无论您使用git subtree还是git submodule,这取决于您所能接受的权衡。

在git预提交钩子中编写一个脚本,如果css文件发生了更改,那么脚本可以将更改推送到BitBucket。参见

git help githooks

您可以通过添加第二个远程存储库将两个存储库合并为一个

它更容易维护。

选择一个存储库,我们称之为repo1。第一步是在repo1中添加第二个远程存储库,称为repo2。这是你的第二个项目。然后将repo2的分支提取到您的repo1中。所有分支都将"愉快"地坐在一个存储库中。

下一步是将两个项目的主线合并为一个分支。如果文件夹和文件彼此不"冲突",这将完美地工作。在执行此操作之前,您可能需要重命名某些文件夹。

现在,这两个项目坐在一起,可以共享CCS文件。之后,您可以忽略repo2

整个操作在本地存储库中完成。完成后,您将所有内容推送到中央服务器,如BitBucket。

其概念是,git存储库只是分支的"房子"。如果这些分支没有共同的祖先,那也没关系。我们使用这种方法来减少紧密合作的项目的存储库数量。

最新更新