我想为我正在使用Eclipse开发的一些现有STM32嵌入式C项目创建Git存储库。 目前我在他们自己的文件夹中有两个独立的项目,以及一个包含ST的官方STM32 Cube外围驱动程序(.c和.h)文件的公共文件夹,这两个项目都使用这些文件。 驱动程序文件夹不应更改(新版本发布时除外),但项目文件将在开发时编辑。 我应该如何将它们放在Git上?我应该:
第一个选项似乎没问题,但是如果我不克隆项目和驱动程序repos,并将它们放到特定位置,我就看不出如何正确配置Eclipse。 第二个似乎更麻烦但是多余(在发布时更新所有项目以使用新驱动程序并不容易,并且它将使用更多服务器空间)。
编辑:只是为了澄清,我没有使用STM32CubeMX软件。我只是使用STM32CubeF4外设驱动程序,它们基本上只是芯片内部外设的嵌入式C .c / .h源/头文件(可能还有一些用于DSP计算的.lib库文件)。有关.zip存档(当前版本为1.4.0),请参阅本页底部的“下载”按钮:http://www.st.com/web/en/catalog/tools/PF259243
答案 0 :(得分:1)
如果你在其他几个repos中使用一个通用驱动程序,它看起来像git子模块的工作。
您有三个单独的存储库,例如在您的服务器上,两个项目都包含驱动程序代码作为子模块。每个项目仓库中存储的内容是:
克隆项目仓库后,运行git submodule update --init
,将 URL 的仓库克隆到相对的路径中,并将其提交< / em>已签出。
git submodule add --name <driver> /server/src/driver.git driver
(/server/src/driver.git
是网址,driver
是路径。<driver>
只是一个可选参考,可以简化子模块的未来工作如果它与 path )
git submodule update
。
您最终会得到两个驱动程序克隆,每个项目都有一个工作文件结构。但这并不是多余的,因为它们是服务器上常见驱动程序仓库的克隆。
对于驱动程序的每次更新,都会将驱动程序更改推送到服务器。要更新到另一个项目中的最新驱动程序版本,请转到该项目的子模块,执行常规git push
(您可能处于分离状态,在这种情况下,您需要签出master
第一)。更新将显示在项目(不是子模块&#39;)git status
中,它将告诉您&#34;新提交&#34;在驱动程序子模块中。更改的内容是在子模块中检出哪个SHA1;提交项目中的更改只会更新要检出的子模块提交。