首页 > 解决方案 > 可以使 github 克隆兄弟姐妹对其他用户不可见吗?

问题描述

假设我做了一个名为 parent 的 repo,我克隆了它两次,child1然后child2.

然后我邀请person1对 具有编辑功能child1,并person2在 上具有编辑功能child2

我可以通过某种权限设置组合来保证person1无法查看child2克隆,person2也无法查看child1克隆吗?

这些都是私人回购。

目标是拥有一份课程作业框架代码的教师副本,以及可以克隆它并进行更改并上传到他们的克隆的学生,但不能看到彼此的工作。

标签: github

解决方案


如果这些是私有存储库,则任何用户都无法看到它们,除非它们被明确添加为协作者(如“邀请协作者到个人存储库”中)

在您的情况下,您可以复制您的骨架存储库,将其上传到 student1_repo、student2_repo 等,每个私有存储库。

然后你邀请 student1 到 student1_repo,student2 到 student2_repo,依此类推。

每个学生都无法看到您的任何其他私人存储库。

与要求学生创建分叉相比,您可以控制谁可以访问什么,并确保每个存储库确实仅适用于该特定学生,而该学生不可能“邀请”其他人加入他们的分叉。


再说一遍:

  • 每个学生存储库都不是一个分支
  • 每个学生存储库都以与原始骨架存储库相同的历史开始。
  • 每个新的存储库创建都可以使用Github cli 工具编写脚本
  • 您可以一次推送更新到所有存储库(但他们需要在自己的分支中合并新的修改)

那是:

git clone https://github.com/me/skeleton

# for each student
gh repo create student1_repo --private --enable-wiki=false
gh repo adduser student1 student1_repo
git remote set-url --add --push all https://github.com/me/student1_repo

注意:gh repo adduser 尚不存在:此脚本(issue cli/cli1531)将调用相关的 GitHub API。

# for any update from your skeleton to your student repositories:

git push all master:update
# for each student:
gh pr create --title "Add this to your main" --body "Merge this PR" \
             -a student1 -H update

推荐阅读