Как мне легко запретить доступ к истории коммитов репозитория Github? - PullRequest
0 голосов
/ 15 февраля 2020

При создании заданий по программированию курса я часто работаю в Github-репо. Эти репо обычно содержат коммиты, которые имеют решение для назначения. Поскольку я не хочу делать эти коммиты доступными для класса, есть ли способ запретить доступ к истории коммитов?

Прямо сейчас мне приходится создавать совершенно новое репо и копировать код вручную, чтобы не было истории коммитов. Или предоставление почтового индекса репо. Но почтовый индекс неудобен, потому что иногда я хочу внести изменения в код в назначении. Должен быть лучший способ! (Я был бы взволнован для решений, которые могут быть сделаны через Github GUI, если это возможно. Но я соглашусь на командную строку.)

Ответы [ 2 ]

1 голос
/ 15 февраля 2020

Я не уверен, есть ли способ ограничить доступ к указанным c частям истории. Также, вероятно, не очень хорошая идея удалять историю, потому что вы можете обратиться к ней позже.

Если вашим учащимся не нужен доступ к какой-либо истории фиксации, и вы просто пытаетесь избежать копирования / вставив код в новое хранилище, вы можете скопировать существующее хранилище в новый каталог, а затем удалить весь каталог .git, чтобы удалить историю. Затем просто инициализируйте новый репо с помощью git init, зафиксируйте всю кодовую базу и выполните обычные шаги для создания удаленного репозитория и вставьте в него pu sh.

Вы останетесь с новым репо в дайте своим студентам, у которых нет истории, но все тот же код.

0 голосов
/ 16 февраля 2020

Git само по себе не предлагает ваши ожидания из коробки. Вы можете достичь этого с помощью git рабочего процесса с любым Git менеджером репозитория. GitHub и GitLab.

Шаг 1: Вам необходимо иметь одну частную ветку. Рассмотрим главную ветвь для этого примера, которая доступна только пользователям, которые имеют указанную привилегию c для этой ветки.

Чтобы добавить такое ограничение в любую ветку, см. Этот пост Как ограничить доступ к главной ветке на git

Шаг 2: Вам нужна открытая ветка c, которая создается из указанного c коммита (где вы зафиксировали только назначение, а не решение). Эта ветвь не будет иметь истории от этого коммита. (означает отсутствие решений о назначении)

чтобы создать ветку из определенного коммита, см. этот пост Ветвь из предыдущего коммита с использованием Git

Следуя описанному выше рабочему процессу, вам больше не нужно будет указывать почтовый индекс репо, избегая при этом предыдущих решений о назначениях, видимых из истории нового репо.

Попросите разработчиков создать новую ветку из c ветки. У каждого будет свое пространство.

Чтобы создать новую ветку из недавно созданной ветки publi c, обратитесь к этому сообщению Создайте ветку в Git из другой ветви

...