Многие разработчики, кодеры, когда разрабатывают программу, создают несколько версий. И нужна определенная система для удобного управления версиями программы (альфа-, бета-, final-версии). Можно выделить 3 основных способа, которые используют: архивы, SVN и GitHub.
Архивы — разработчик просто создает архивы и называет их по версии программы с датой изменений. Но возникает проблема запутаться во всех этих архивах и потерять написанный код. SVN — системы управления версиями программного кода. Существует несколько программ для работы. Подробнее про svn можно почитать на этом блоге, используя поиск. Существенный недостаток всех этих систем управления версиями — нужно постоянное подключение в интернету. Хорошо, если вы постоянно кодите в офисе и дома — с двух компов. Но если нет постоянного места работы, вы постоянно куда-то ездите, всегда нужен будет стабильный и скоростной интернет, что не всегда бывает. Нет инета — нет нормальной работы.
Начиная с 2005 года выходит первая версия Git. Его сразу стали использовать многие крупные компании — разработчики софта. Но настоящую популярность он обрел с запуском своего хостинга для хранения проектов — www.github.com. И сейчас подавляющее большинство разработчиков использует Git.
Отличие Git от SVN
Git работает совершенно иначе, чем системы управления версиями. SVN хранит данные в виде цепочки: файл -> изменение №1 -> изменение №2 -> изменение №3.
У Git по-другому. Он не хранит изменения одного файла, он делает слепок всех файлов. А если файл не изменился, Git просто ставит ссылку на него. Таким образом кодер всегда имеет дело с одним набором файлов.