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

时间:2018-05-26 13:33:36

标签: git

我正在开发一个包含很多分支(~100个分支)的git项目。我知道可以签出特定日期,但它只适用于一个分支,我需要的是将整个项目克隆到特定时间(特定提交)。是否可以直接进行,而无需手动(脚本)重新定位所有分支?

2 个答案:

答案 0 :(得分:1)

您应该可以将--shallow-since=<date>git clone一起使用。文档并不完全清楚它是否适用于所有分支,但我认为,例如,对于相关的--depth,它表示暗示--single-branch,但--shallow-since没有这样的说明。

答案 1 :(得分:1)

在评论中,您解释了您实际尝试做的事情:

  

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

我不会为此目的使用单个存储库 - 学生可以轻易地覆盖彼此的分支,或以其他方式伪造提交。这是灾难的秘诀。

相反,这就是我要做的事情:

  • 设置GitLab的私有实例,并为每个学生开设一个帐户
  • 为课程
  • 创建
  • 在该组中,为每个学生的提交(一个作业)创建一个项目
  • 在论坛上授予学生权限,设置为在截止日期前过期

通过这种方式,学生只能在截止日期之前推送到存储库。

还有其他变化可能也有效。