以确保干净/正确的工作树和子模块的方式更改分支(Git)

时间:2014-07-11 02:12:41

标签: git continuous-integration git-submodules

我的任务是让我们的构建更快,我想要做的其中一个动作是从CVS到Git(祝我好运)。目前我们构建中最繁琐的任务之一是项目的实际结账,在最糟糕的时候可能需要大约15分钟。我将设置一个CI来构建分支中的任何内容,并且想知道如何每次都进行构建,而不需要每次都从一个干净的工作区完全检查整个项目。

该项目包含许多子模块,根据我的理解,子模块在需要更新或删除它们时可能会遇到一些棘手的问题。我对子模块的经验是,除非你得到正确的操作顺序,否则在进行重置和清理时,你可以在这里或那里留下流氓文件。

是否有一些命令序列给定一个当前干净的工作树,我可以检查另一个提交并调用git clean,reset,submodule-sync,更新任何导致另一个干净的工作树?就像我之前所说的那样,我正试图找到最少下载/检查的路径来到我的新工作树。

感谢您的帮助,如果您拥有的只是一些很好的参考资料,我可以自己查阅所有边缘情况,我将非常感谢!

1 个答案:

答案 0 :(得分:2)

我通常会做以下事情:

git clean -fd
git reset --hard
git checkout <new branch name>

你可能需要在最后添加:

git submodule update --init