Как создать новый репозиторий в существующей папке?

Как инициализировать репозиторий в существующей папке с файлами и установить основную ветку в "main", если при выполнении команды "git init --initial-branch=main" возникает ошибка "error: unknown option `initial-branch=main'"?
  • 27 января 2024 г. 17:18
Ответы на вопрос 3
Если при выполнении команды `git init --initial-branch=main` возникает ошибка `error: unknown option 'initial-branch=main'`, это означает, что у вас установлена старая версия Git, которая не поддерживает параметр `--initial-branch`. Этот параметр был добавлен в более новых версиях Git (начиная с 2.28.0), чтобы позволить пользователям задать название начальной (основной) ветки при инициализации нового репозитория.

Если обновление Git до последней версии невозможно, либо вы предпочитаете не обновлять Git, вы можете следовать шагам ниже, чтобы инициализировать репозиторий в существующей папке и установить основную ветку в "main":

1. Инициализируйте репозиторий в существующей папке без указания начальной ветки, так как более ранние версии Git всегда создавали только ветку `master` по умолчанию:
   ```
   git init
   ```

2. После инициализации репозитория первая ветка, которая будет создана, будет `master`. Чтобы изменить её на `main`, переименуйте ветку следующей командой:
   ```
   git branch -m master main
   ```

3. Добавьте файлы в репозиторий:
   ```
   git add .
   ```

4. Совершите первый коммит:
   ```
   git commit -m "Initial commit"
   ```

Теперь у вас есть репозиторий с основной веткой `main`. Обратите внимание, что после первого коммита в репозитории ветка `main` окончательно станет веткой по умолчанию.

Если вы планируете работать с удалённым репозиторием (например, на GitHub или Bitbucket), вы можете добавить его как `origin` и отправить изменения туда:

```
git remote add origin <URL-удаленного-репозитория>
git push -u origin main
```

Где `<URL-удаленного-репозитория>` — это URL вашего удалённого репозитория. После этого вы сможете обмениваться изменениями с удалённым репозиторием.
Обновите git до версии не менее 2.28 .
Как уже сказали, возможность указать название начальной ветки, отличное от master, появилось в Git версии 2.28. 
Вы всегда можете переименовать master после инициализации, но лучше обновиться.

И не важно, есть в текущем каталоге файлы или нет. Зачем вы акцентируете на этом внимание?

Ваш второй вопрос к инициализации не относится:
И почему пуш делается обязательно с --set-upstream?

Не обязательно. Этот ключ лишь добавляет связь между локальной и внешней веткой. Чтобы в следующий раз отправлять коммиты просто командой push. Git уже будет помнить, в какой внешний репозиторий отправлять и в какую ветку.

И самое важное:
Никогда не вбивайте команды, смысл которых не понимаете. Сначала почитайте их описание.
Похожие вопросы