如何在所有分支中克隆git存储库到特定时间?

如何在所有分支中克隆git存储库到特定时间?,git,Git,我正在从事一个git项目,有很多分支(~100个分支)。我知道可以签出一个特定的日期,但它只在一个分支上工作,我需要的是克隆整个项目到一个特定的时间(特定的提交)。是否可以直接执行,而不需要手动(脚本)重新设置所有分支?您应该能够使用git clone。文档并不完全清楚它是否适用于所有分支,但我假设是这样的,例如,对于相关的--深度,它表示暗示--单个分支,但是对于--浅层,没有这样的注释,因为在注释中,您解释了您实际要做的事情: 目的很简单:Git项目是学生任务的存储库。每个学生都在自己的分支

我正在从事一个git项目,有很多分支(~100个分支)。我知道可以签出一个特定的日期,但它只在一个分支上工作,我需要的是克隆整个项目到一个特定的时间(特定的提交)。是否可以直接执行,而不需要手动(脚本)重新设置所有分支?

您应该能够使用
git clone
。文档并不完全清楚它是否适用于所有分支,但我假设是这样的,例如,对于相关的
--深度
,它表示暗示
--单个分支
,但是对于
--浅层,没有这样的注释,因为在注释中,您解释了您实际要做的事情:


目的很简单:Git项目是学生任务的存储库。每个学生都在自己的分支机构工作(大约有100人);显然,任务有最后期限。最简单的诀窍是在截止日期到来时结清项目

为此,我不会使用单个存储库——学生可以轻松地覆盖彼此的分支,或者伪造提交。这是灾难的秘诀

相反,我要做的是:

  • 设置GitLab的私有实例,并为每个学生提供一个帐户
  • 为课程创建一个组
  • 在该组中,为每个学生的提交创建一个项目(一个作业)
  • 授予该组的学生管理员权限,设置为在截止日期到期
这样,学生只能在截止日期前推送到存储库


还有其他一些变体也可以使用。

当您克隆存储库时,默认情况下,您将得到整个历史记录-所有分支的所有提交。因此,你的问题是完全不清楚的。我知道默认情况下这都是历史,但我希望直到特定日期的整个历史都忽略以后的一切(时间点),为什么?Git并不是这样工作的。你只是想看看日志,还是什么?目的很简单:Git项目是学生任务的存储库。每个学生都在自己的分支机构工作(大约有100人);显然,任务有最后期限。最简单的诀窍是在截止日期到来时检查项目,我想知道是否有一些方法可以同时处理完整的项目历史记录和所有分支,而不检查每个分支的历史记录检查OP对这个问题的评论-这似乎与他相反(不清楚)对于我的用例来说,这太过分了:首先,每个人都显示他们的任务并向另一个系统提交报告。锁定存储库不是解决方案,还有额外的时间可以提交迟交的任务(当然成绩会下降)。大型回购的主要目的是检查是否没有人两次带来完全相同的问题