Will you keep all course materials in a repository? Or just assignments?
We use our moodle site for course materials. We’re looking at GitHub Classrooms for code submission, but we also require written reports with most of our assignments.
When will you expect students to commit?
Ideally, atomically, but like others have posted, it is difficult to get the students to understand this. I think this is one of those things that takes experience and use.
We might also look at trying to model other version control systems using git, so the students have an understanding of different workflows.
What sort of commit messages should they use?
A sentence or two describing the changes to code since the previous commit.
When do you want your students to push their code to GitHub?
If it’s their own private repo, then frequently. If it’s a shared repo, they should make sure any new commits are satisfactory before pushing (appropriate commit messages, no files/data accidentally included that shouldn’t be, etc)