我试图找出如何让Git与我在办公室编写代码的其他三个人一起工作。我们为众多不同的目标开发自定义应用程序(通常,"目标"是不会运行版本控制的嵌入式系统)。
在理想的世界中,我们可以在每个目标的各个源文件夹中创建存储库,并且能够正确地同步我们的工作。代码既可以在离线系统上也可以在实时系统上进行修改,但是只要我们修改实时系统中的代码 - 我们就可以将其转移回开发机器进行共享/存档 - 开发工具必须完全删除dev机器上相应的源文件夹,当我们将修改后的代码拉回时,将其替换为目标中的目录。每当我们想要备份对实时系统所做的更改时,就会摧毁目录中的任何repo文件,这种情况经常发生。
此外,我们有数百种不同的应用程序需要版本控制,这些应用程序不应同时存储在每台开发机器上。如何在不能将存储库信息存储在各个源目录中的情况下推送/拉取/克隆单个应用程序?
答案 0 :(得分:0)
如果我理解正确,那么您在源文件夹中存在.git文件时会遇到问题,您希望将其复制到目标文件中。
我能想到的最简单的解决方案是:
对目标进行更改时:
按照您现在的方式做事。删除工作副本中的该文件夹,但不删除工作副本本身。
现在git status
和git diff
会向您显示所有已更改的文件以及发生在其中的所有更改。
这将帮助您将源代码置于版本控制之下,而无需将存储库本身放在嵌入式系统上。
您将获得系统中已更改的所有内容的完整差异,但您需要花费大量精力,确保您在双方都编辑相同的修订版。
现在,在每台开发机器上存储所有应用程序:
他们每个人都应该得到自己的git repo。如果您有在多个应用程序中使用的公共代码,git submodules可能是正确的解决方案。
有三个人在办公室一起工作,你应该有一个中央的git服务器。每个人都可以从那里克隆项目并拉/推更改它。如果您觉得您不会很快再次需要项目,可以从开发计算机中删除它。它在服务器上(如果您已推送所有更改)。
可能的选项包括: