Идея моего метода была в том, что удаленный репозиторий (на Github) должен быть пустым. Но у вас он уже не пустой, так как в нем есть коммит с файлом .gitignore.
Поэтому меняем алгоритм работы следующим образом:
1. Создаете папку проекта.
2. В ней делаете новый репозиторий (git init). И не делаем в нем ни каких коммитов.
3. Добавляем в этом локальном репозитории ссылку на удаленный репозиторий на Github (git remote add origin [URL])
4. Выполняем команду git pull origin master.
5. Должен появиться файл .gitignore из репозитория с Github.
Далее можно делать коммиты в локальный репозиторий и отправлять их в удаленный командой git pull.
Объясню в чем ваша ошибка.
Вы делаете push из локального репозитория в котором еще не было сделано ни одного коммита. Ошибка вам говорит, что она не может найти ветку master. Что правильно, так как у вас ее просто нет.
Принцип такой. Один из репозиториев должен быть пустым, какой не важно. В это случае вы сможете их связать с помощью ссылки на удаленный репозиторий и сделать копии веток командами pull или push. Какую команду выбрать зависит от того какой репозиторий у вас пустой. Если пустой локальный, то в нем делаете pull и получаете ветки из удаленного. Если пустой удаленный, делаете в локальном push и отправляете ветки в удаленный.
Это зависит от размера команды. Если она небольшая, то лучше совместить функции менеджера и методолога. В большой команде можно выделить скрам-мастера.
Вам нужно смотреть в сторону Document Management Systems. Например, на базе Apache Jackrabbit. В нем есть поддержка версионирования документов.
http://www.openkm.com/en/overview/features.html
Мне сложно понять почему вы мыслите годами. Я привык мыслить проектами, которые могут продолжаться от нескольких дней до нескольких лет. И создатели Git думали так же.
В любом случае для целей резервного копирования лучше использовать средства резервного копирования. Git про другое и для него самого неплохо создавать резервные копиии.