Подтвердить что ты не робот

Создание ветвей в пустом проекте в git

Скажем, я собираюсь реализовать 3 разных функции в 3 разных файлах (fileA, fileB fileC) для моего нового проекта.

Я думал, что мне просто нужно добавить мой (в настоящее время пустой) проект в git:

git init

а затем создайте 3 разных ветки:

git branch file1_branch
git branch file2_branch
git branch file3_branch

но это не работает:

fatal: Недействительное имя объекта: 'master'.

Почему это?

Может быть, проблема может быть связана с тем, что даже мастер-ветвь не была создана на данный момент? Я попытался сделать git branch. Это ничего не дало.

Затем я подумал о том, чтобы сделать "пустую" фиксацию, чтобы обязать git создать ветвь master:

git commit -m `initial_commit`

но поскольку я не добавлял никаких файлов в промежуточную область, он не работает.

Имейте в виду, что я собираюсь начать свой проект, поэтому на данный момент у меня нет файлов для добавления в commit!

Как решить эту проблему? Я что-то делаю неправильно?

Спасибо

4b9b3361

Ответ 1

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

Git представляет собой фиксацию в качестве ссылки на одну или несколько родительских коммит (или родитель всех нулей, если это начальная фиксация), сообщение фиксации и некоторые другие метаданные и ссылка на дерево. Дерево в основном является манифестом того, что есть в каждом файле в каждом каталоге. Если ваш каталог пуст, в дерево нечего помещать. Теперь на самом деле можно создать пустую фиксацию в качестве вашей первой фиксации; вы можете запустить git commit --allow-empty -m "initial commit". Но это не обычный способ использования Git.

В Git вы ожидаете, что не будете использовать ветки, если они вам не нужны. Нет необходимости создавать несколько ветвей, пока у вас не будет какой-либо контент для ветвления. Если вы создадите три ветки в самом начале разработки, у вас нет общего происхождения между ними? В таком случае, почему бы просто не создать три репозитория? Или вы собираетесь обновлять все три из них синхронно, пока они не начнут расходиться? Это похоже на большую работу, чтобы держать их в курсе последних событий; вы должны просто ждать, чтобы создать их, пока они не будут расходятся.

Но если вы хотите использовать этот рабочий процесс, вы можете запустить git commit --allow-empty -m "initial commit", чтобы создать пустую начальную фиксацию.

Ответ 2

Вы можете сделать пустую начальную фиксацию с помощью:

git commit --allow-empty

И тогда вы можете создавать свои ветки по своему усмотрению.