TLDR; Цель состоит в том, чтобы поддерживать два кода (если возможно, на одном репо, если не на двух), один, содержащий упражнения, и другой, который также содержит исправление, избегая дублирования кода до возможный. Обычные пользователи не должны иметь возможность читать исправленный код. Любой трюк приветствуется.
Длинная версия:
Я пытаюсь сделать следующее: идея в том, что мы несколько «учителей», и мы работают над некоторыми упражнениями по программированию для наших студентов. Обычно у нас есть 3 вида «ресурсов»:
- ресурсов, к которым студенты имеют доступ, но теоретически не должны их изменять (например, библиотеки, ресурсы, тесты, которые будут выполняться CI ...)
- ресурсы, которые ученики должны изменить, например, каркас приложения
- ресурсы, которые не должны читаться студентами, обычно это исправление упражнения
Что мы пока что у нас есть два репозитория, один приватный для учителей (с исправлением) и один общедоступный c для учеников, затем ученики перенаправляют общедоступный канал c в частный, добавляют учителей в качестве сопровождающих. и работай отсюда.
Однако немного раздражает дублирование кода между двумя репозиториями. Есть ли более разумный вариант, который git (или, более конкретно, gitlab, поскольку это инструмент, который мы используем, мы используем CI для автоматического тестирования кода учащихся), может позволить нам защитить некоторые файлы от чтения / клонирования? Или есть какой-то другой способ легко поддерживать два репозитория, которые отличаются только одним файлом?