Вы еще не родились в филиале

У меня есть странная проблема:

$ cd ~/htdocs

$ mkdir test

$ cd test

$ git init
Initialized empty Git repository in /home/deep/htdocs/test/.git/

$ git checkout master
error: pathspec 'master' did not match any file(s) known to git.

$ git checkout -b master
fatal: You are on a branch yet to be born

$ git checkout origin/master
error: pathspec 'origin/master' did not match any file(s) known to git.

$ git branch -a
(empty this)

Но это новое локальное пустое репо. Где главная ветка?

Ответы

Ответ 1

Как всегда, Git прав, он просто имеет причудливый способ сказать это: когда вы создаете репозиторий, главная ветвь на самом деле еще не существует, потому что нет ничего, на что она указывает.

Вы пытались совершить что-то после своего git init? Разумеется, добавление удаленного и вытягивания из него также будет работать.

Ответ 2

У меня была такая же проблема, как и вы. Я решил создать новый пустой файл, чтобы иметь файл в проекте.

git add someFile, затем commit -m "first commit" и, наконец, с push origin master

Я надеюсь, что это поможет

Ответ 3

У меня было такое же сообщение об ошибке, когда у меня открылось несколько Windows Explorers, оба были открыты для того же существующего локального репозитория git.

Я создал новую ветку в одном окне, используя щелчок правой кнопкой мыши → создать ветку.

Позже, во втором экземпляре Windows Explorer, я попытался щелкнуть правой кнопкой мыши → Ветвь (чтобы узнать, какая ветка в данный момент проверена). Затем я получил сообщение "Ты еще на ветке, чтобы родиться".

Простое закрытие 2-го Проводника закончило проблему, и ошибка не появилась в 1-м Проводнике.

Ответ 4

Если кто-то достигнет этой части, я думаю, что вам не повезло с ответами. У меня такая же ситуация и с ОП. Попробуй это:

  1. Вытащите свой репо в другой каталог
  2. скопируйте папку .git в ваш новый репозиторий

Ответ 5

У меня была та же проблема, что и у ОП. Первоначально я сделал следующее:

md Project
cd Project
git init
git remote add origin [email protected]:user/repo.git

Все последующие команды git имели те же ошибки, что и OP.

Для меня сработало удаление папки Project, а затем выполнение следующей команды из родительской папки:

git clone http[s]://domain.com/user/repo.git Project

Затем он запросил у меня имя пользователя и пароль для доступа к репо. Каждая команда git запрашивала учетные данные, поэтому я выполнил следующую команду:

git config --global credential.helper wincred

Следующая команда git запросила мои учетные данные, которые затем были сохранены в диспетчере учетных данных Windows (отображается через панель управления). Теперь команды git работают без запроса учетных данных.

Ответ 6

Существует способ инициализации нового репо без фактической фиксации каких-либо файлов:

git commit --allow-empty -m "Initialization"

Если у вас есть --bare, то обходной путь такой:

mkdir /tmp/empty_directory
git --work-tree=/tmp/empty_directory checkout --orphan master
git --work-tree=/tmp/empty_directory commit --allow-empty -m "Initialization"
rm -rf /tmp/empty_directory