virtualenv - это отдельная комната, в которой у тебя находятся твои инструменты. Если ты программируешь например на python, то в этой комнате у тебя свой отдельный python, у него свои модули, свои файлы, которые ты создашь. Своего рода отдельная мастерская, которая изолирована от других производств. Там свои станки, свои материалы, свои работники (и такое может быть).
git - это своего рода "сохранка изменений" + сравниватель "старой версии" с новой. Т.е. это система, которая следит за файлами, которые ты создал. Ты можешь возвращаться к старым сохранкам, делать ответвления от этих сохранок. И много других вещей. Для этого посмотри видео на ютубе. Кроме того, эти "сохранки" можно сохранять на удалённых репозиториях. В разных сервисах: bitbucket, github, gitlab и других на выбор. А ещё через такие удалённые сервисы, с одним и тем же кодом могут работать сразу несколько программистов. Вот такие чудеса... :-)