使用不同的分支机构构建NodeMCU固件

时间:2019-06-17 04:45:59

标签: git github esp8266 nodemcu

只有将克隆到单独的本地目录时,我才能为NodeMCU的所有分支https://github.com/nodemcu/nodemcu-firmware构建固件。

当我尝试仅拥有一个文件夹并使用git checkout分支时,我只能构建主固件。当我签出分支时,其他文件也会更改以匹配分支,但是我无法构建固件。也许这就是它的样子?我希望我可以先使用git checkout master,然后进行make来构建主固件,然后再使用git checkout dev再进行make来构建dev固件。文件确实会更改以正确反映分支,所以我不确定为什么它不起作用。

2 个答案:

答案 0 :(得分:2)

首先,您不必进行多次克隆。
您可以只创建一个克隆,然后使用git worktree在相应文件夹中检出这些分支。

第二,当您签出分支时,在第一次编译期间创建的其他文件不会被删除,这可能会干扰您的第二次编译。

执行git clean -n -d -x -f来预览 您可以从新检出的工作树中清除的内容。

确定后,请删除-n(空运行选项)。如果您不想删除被忽略的文件,也请删除-x

答案 1 :(得分:2)

虽然@VonC的回答肯定有帮助并且有点“正确”,但它也很通用。

您可能会遇到的麻烦是Git子模块。我们将其用于例如u8g2和ucg。在相应分支的.gitmodules中查看详细信息。

切换分支时,需要更新子模块。 git worktree在这里会非常方便,但是由于仍有一些错误会影响我从未尝试过的子模块的处理。

我怀疑您遵循https://nodemcu.readthedocs.io/en/master/build/#git上的说明。对于ESP32 branch,我们记录了更多的构建说明,因为云构建器尚不支持。

结论:确保每次切换分支时都运行git submodule update --recursive