我这个学期正在新大学教一门新课程,我真的很想让我的学生运用最佳实践.通过这种方式,我想使用git存储库分配和接收他们的作业.不幸的是,我使用git,但我不太清楚它是否足以知道潜在的安全漏洞是什么以及如何避免它们.另外,我只使用git进行个人版本控制,而不是在团队或团队中.
我目前的计划是设置机器A,用户1-12,对应于我的每个学生.我将为每个学生生成一个ssh公钥/私钥对,以及一个初始git存储库.然后,学生可以访问存储库以获取新的作业,并在提交时将其推送到该库.
理想情况下,在没有太多麻烦的情况下,当我发布作业时,我将能够从主存储库推送到学生存储库.如果可以从他们的存储库拉到主存储库,那么它也会很整洁.
编辑:这个文字有点不清楚.我打算让他们在完成任务时推送/拉入他们的个人存储库,或者给他们一个新的任务.我不认为我能够将作业推送到他们的笔记本电脑中:)
那么我从哪里开始呢?我要注意什么?这是一个坏主意吗?如果是这样,为什么?
您可以使用Gitosis来管理对存储库的SSH访问,如scie.nti.st中所述:托管Git存储库,Easy(和安全)方式和Tv的蜘蛛网:Snakepit和gitosis,我一直在处理博客文章的事情,以及在第4.7章:Gitosis的"Pro Git:专业版控制"一书.它在Python中,需要setuptools.或者您可以尝试在Perl中找到它的等效物,例如gitolite(以前的gitosis-lite).
替代解决方案是让每个学生拥有自己的存储库或一对存储库:他/她正在工作的私有存储库,以及可能具有SSH访问权限的(半)公共存储库他/她推动完成已完成的工作.您将采取行动维护/集成商的角色,并拉他们的公共仓库变成你的资料库(或您的存储库).学生将从您的公共存储库(或存储库)中提取.