github - 可以使 github 克隆兄弟姐妹对其他用户不可见吗?
问题描述
假设我做了一个名为 parent 的 repo,我克隆了它两次,child1
然后child2
.
然后我邀请person1
对 具有编辑功能child1
,并person2
在 上具有编辑功能child2
。
我可以通过某种权限设置组合来保证person1
无法查看child2
克隆,person2
也无法查看child1
克隆吗?
这些都是私人回购。
目标是拥有一份课程作业框架代码的教师副本,以及可以克隆它并进行更改并上传到他们的克隆的学生,但不能看到彼此的工作。
解决方案
如果这些是私有存储库,则任何用户都无法看到它们,除非它们被明确添加为协作者(如“邀请协作者到个人存储库”中)
在您的情况下,您可以复制您的骨架存储库,将其上传到 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/cli
1531)将调用相关的 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
推荐阅读
- jquery - 光滑的轮播桌面设置覆盖移动设备
- ruby-on-rails - 使用移动 gem 使用脏方法进行跟踪的轨道
- flutter - 是否可以在列中插入 AspectRatio?
- java - 我的 HTML 页面没有出现在 localhost:8080 上,而是显示了 tomcat 欢迎页面
- python - 如何解决 aiohttp 或 aiogram 的问题?
- regex - 正则表达式匹配捕获组多次
- javascript - 如何向用户实时预览更改?
- javascript - JS 没有运行 do-while 循环
- java - 如何在 Java 中创建自定义注解,如 Spring @Value?
- flutter - 如何使用 Flutter 在 Android 设备的 SQLite 数据库中手动缓存 Firestore 数据?