Я также только недавно начал интересоваться управлением версиями. В системах контроля версий у вас есть концепция хранилище для вашего кода. Множество новых команд оболочки изучаются очень быстро, так что вы можете взаимодействовать с этим хранилищем.
Как только вы сохраните свой код в файл, вы можете зафиксировать это в хранилище вашего проекта. По мере того, как вы разрабатываете свой код и фиксируете свои изменения, хранилище разрабатывает серию revisions . Вы можете получить доступ к любому из них, проверив ревизию. Если вы работаете в одиночку, вряд ли вы будете делать много проверок, если не потеряете свои файлы кода или не захотите работать на другом компьютере. В этих случаях вы обычно проверяете последнюю версию всех файлов.
Что касается меня, я больше не храню файлы или папки с именем project_old, когда решаю что-то реорганизовать. Любые изменения, которые я делаю, сохраняются постепенно, и я всегда буду в состоянии вернуться назад к проекту, который работал в целом. Я редко использую FTP для развертывания сейчас, потому что я просто извлекаю свой код через ssh. Загружаются только файлы, которые я изменил, и если мне нужно перезагрузить сервер, терминал уже там.
Я нашел этот разговор о GIT по-настоящему поучительным; http://www.youtube.com/watch?v=4XpnKHJAok8
Это гугл-лекция, в которой Линус Торвальдс приводит аргумент в пользу использования одной системы контроля версий над другой. При этом он объясняет, как они работают, используя концепции, а затем сравнивает различные способы их реализации.