Создание и удаление git-репозиториев

Если какую-либо папку сделать git-репозиторием, то Git как программа начнет определенным образом отслеживать происходящие в ней изменения, позволять их фиксировать и выполнять "перенос" изменений между разными компьютерами.

Чтобы каталог проекта сделать git-репозиторием, надо перейти в него и в нем выполнить команду git init.

user@comp:~$ cd test-project/
user@comp:~/test-project$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint:   git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint:   git branch -m <name>
Инициализирован пустой репозиторий Git в /home/pl/test-project/.git/

После этого в каталоге появится скрытая папка .git, в которой будут хранится данные для Git, касаемые данного проекта.

user@comp:~/test-project$ ls -a
.  ..  .git

По-умолчанию ветка называется master или main. Вы можете переименовать ее, воспользовавшись подсказкой в выводе при инициализации репозитория. Помнить об имени ветки важно, если в дальнейшем проект будет содержать несколько.

Фраза "Инициализирован пустой репозиторий Git" означает, что в репозитории еще не было коммитов (фиксации изменений), и не имеет отношения к тому, уже есть в проекте файлы или еще нет.

Однако вывод команды git status в зависимости от наличия/отсутствия файлов и каталогов будет несколько отличаться:

user@comp:~/test-project$ git status
Текущая ветка: master

Еще нет коммитов

нечего коммитить (создайте/скопируйте файлы, затем запустите
«git add», чтобы отслеживать их)
user@comp:~/test-project2$ ls -a
.  ..  docs  .git  program.py  readme.md
user@comp:~/test-project2$ git status
Текущая ветка: master

Еще нет коммитов

Неотслеживаемые файлы:
  (используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
    docs/
    program.py
    readme.md

индекс пуст, но есть неотслеживаемые файлы
 (используйте «git add», чтобы проиндексировать их)

О том, что такое индекс, как туда добавлять файлы и как выполнять фиксацию изменений (коммит) рассказано в следующей статье.

Если из каталога проекта, который в то же время является git-репозиторием, удалить подкаталог .git (то есть разгитить каталог), то, соответственно, проект перестанет быть репозиторием. Файлы папки останутся в своей последней версии, и откат к предыдущим будет невозможен.

С другой стороны, ничего не мешает инициировать новый репозиторий. Его первым коммитом будет текущее состояние проекта.

Кроме обычных git-репозиториев нередко создают так называемые "голые", или "пустые". В этом случае команда git init используется с ключом --bare. Такие репозитории не отслеживают изменения проекта на том компьютере, где созданы. Они используются для простой "вызагрузки" коммитов (изменений) с других компьютеров и хранят информацию о них. Обычно bare-репозитории создают на веб-серверах, если сайт правится только на локальном компьютере.