Version control 在嵌入式linux项目上执行版本控制的最佳方法?

Version control 在嵌入式linux项目上执行版本控制的最佳方法?,version-control,embedded-linux,Version Control,Embedded Linux,我正在着手一个新的嵌入式Linux项目。该项目将由一个运行Linux的嵌入式板、一些驱动程序(可能是一些自定义驱动程序)和一个应用程序组成。我正在与另一个人合作,我们需要一种方法将项目置于版本控制之下 我以前在很多项目中使用过git,我觉得它很棒,但是我想知道将这个项目放到git中的最好方法是什么;我是否为操作系统、驱动程序和应用程序创建单独的存储库?我是否将所有内容都放在一个巨大的存储库中?我不是将操作系统置于版本控制之下,而是将应用程序置于版本控制之下吗 另一个问题:我是将我们使用的Linu

我正在着手一个新的嵌入式Linux项目。该项目将由一个运行Linux的嵌入式板、一些驱动程序(可能是一些自定义驱动程序)和一个应用程序组成。我正在与另一个人合作,我们需要一种方法将项目置于版本控制之下

我以前在很多项目中使用过git,我觉得它很棒,但是我想知道将这个项目放到git中的最好方法是什么;我是否为操作系统、驱动程序和应用程序创建单独的存储库?我是否将所有内容都放在一个巨大的存储库中?我不是将操作系统置于版本控制之下,而是将应用程序置于版本控制之下吗

另一个问题:我是将我们使用的Linux源代码置于版本控制之下,还是将最终产品置于版本控制之下?那么将在主板上运行的整个文件系统呢

如果你能想到这一点,我将不胜感激

谢谢

马龙

关于吉特:

  • 把所有东西都放在一个巨大的回购协议下通常是个坏主意(尤其是当你需要复制所谓的“巨大”回购协议时)
  • 您应该将需要有源代码历史记录的内容置于版本控制之下:如果您不打算实际修改Linux内核源代码(而只是引用用于特定项目版本的所述内核的确切版本),那么操作系统需要存储在别处(例如,Nexus之类的工件存储库).
  • 驱动程序也是如此:如果您更改了它们的源代码,将它们放在它们自己的Git repo中,并将它们作为子模块引用(您将使用“源依赖项”)。
    如果您不更改它们的源代码,而是直接使用二进制文件,请将其存储在工件存储库中(您可以将它们用作“二进制依赖项”,通常不存储在VCS中)

谢谢VonC,这很有帮助。我会听从你的建议。还有一个问题:因为我们使用的是一个半定制的linux发行版,随着项目的进展,可能会对发行版进行配置更改(即添加脚本以在启动时自动运行程序,更改系统文件中的设置,如/etc/network/interfaces),我们应该如何区分git中的内容和没有的内容?如果不将整个文件系统置于版本控制之下,似乎很难将这些类型的内容置于版本控制之下?@Marlon:您可以:a/忽略所有Linux内核源代码b/
add-f
仅修改少数文件(即,您可以“强制添加”)由于
.gitignore
设置,通常应忽略的文件)。这样,您就可以根据您引用的Linux版本提取Linux源代码,然后用您在Git repo中实际版本化的少数文件覆盖这些文件。