This topic has died a bit, but since I'm here I thought I would share our "solution" to this problem. We separate the course materials into "lessons" and "exercises". The lessons are publicly available and include a file
hints.md, where we can offer hints on completing the exercises, as well as fixes for any problems in the exercise materials. The exercises normally take the form of a git repository containing a
README.md describing the exercise, some starter code(s), and any data needed for the exercise. With this configuration, we can update the
hints.md file in the lesson repo to include any changes needed for the exercise after the students have created their repos, including adding a new starter code if things are going really badly that week. If changes are made to the lesson
hints.md, we simply then just post an issue in the lesson repo and use an @mention for the team of students for that course to make note of the update.
I realise there may be better, more git-like, solutions for this problem, but we're working with geoscience students that often have limited computational skills. This solution has worked reasonably well and was intuitive for our students, so we were happy with it. Perhaps it will be of use for others as well.