There are quite a few solutions which allow you to make a VCS part of your teaching.
For example, GitHub Classroom allows you to create assignments with some starter code, then invite your students to work on it and submit their changes through Git. They provide a promotional video here, which shows the workflow with it.
Scaffolding Version Control into the Computer Science Curriculum states:
VCS and other professional tools are often introduced
later in the educational curriculum, possibly in a software
engineering course, generally a second-year or later course,
and may not be reinforced through repetition and application
in later classes. This is unfortunate, because powerful
tools such as VCS can also be difficult for new users and
especially those new to programming and software in general.
The power and flexibility of new distributed VCS can
make them especially challenging, unfriendly, and distracting
for students already fully engaged in developing core
competencies required in the computer science curriculum.
They propose GitSubmit as a helpful solution here, describing it as "A Custom Environment for Introducing
VCS to Novice Developers". Clearly, it's helpful here to introduce VCS as soon as possible, to avoid the issues described later in the paper, where higher level students have virtually no experience of using a VCS, despite its importance in industry.
For the pedagogical challenges, the presentation Challenges and Confusions in Learning Version
Control with Git seems interesting. They conclude:
- Introduce authentic/relevant use cases to motivate the use and
learning of the system
- Authentic practical courses cause students to see the value of
- However, use VCSs throughout the curriculum, as, for instance,
limited resources available during authentic project courses may
limit how the system is adopted