我有一个不寻常的场景,因为我有一个我的学生已经拉过的主回购。这意味着拓扑结构是1个主节点和70个子节点。
repo包含一些练习文件,例如:
def write_this_code_good():
"""Explanation of what to do."""
pass
以及测试这些文件的其他文件。由于间歇性的愚蠢行为,我在测试中犯了一些错误,我现在已经修复了。
我也一直在使用这个回购来展示如何完成练习(我告诉过你我是间歇性的白痴)。这意味着我的更改在更改后的日期更改。
我们在这里处理的所有提交都已提交并推送。
我希望学生能够将父级回购添加为上游并从中拉出来。但是,在我的测试中,我在演示中提交的提交正在覆盖他们的工作。
我试过还原。这样做可以将repo的状态恢复到它们获得它的状态,但是,因为它增加了另一个提交,如果他们撤消它也会重置他们的repo。 (而不是保持不变。)
我认为我需要实际删除某些文件的提交,以便不应用差异。
答案 0 :(得分:1)
无需还原。
他们所需要的只是将您更新的仓库添加为上游,从中获取,并在更新的上游/主数据库之上进行重新定位
cd /path/to/a/student/repo
git checkout a_student_branch
git remote add upstream /url/of/your/updated/repo
git fetch upstream
git rebase upstream/master
如果学生直接克隆了您的回购,那么就不需要新的"上游" remote:他们可以直接从原点获取和重新绑定。