Как создать новую пустую ветку для нового проекта

Мы используем хранилище git для хранения нашего проекта. У нас есть ветки, выходящие из первоначального ветки. Но теперь мы хотим создать небольшой новый проект для отслеживания некоторых документов. Для этого мы хотели бы создать новую пустую ветку, чтобы начать хранить наши файлы, и я хотел бы, чтобы другие пользователи сети клонировали эту ветвь.

Как мы можем это сделать?

Я пробовал некоторые вещи, но они не работали.

$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc

Кажется, что вы нажимаете ветвь нормально, но когда я делаю выборку или вытягиваю, она загружает информацию из других ветвей, а затем я также получаю дополнительные файлы из других проектов. Какое лучшее решение?

Ответ 1

Вы можете создать ветвь как сирота:

git checkout --orphan <branchname>

Это создаст новую ветку без родителей. Затем вы можете очистить рабочий каталог с помощью

git rm --cached -r .

и добавьте файлы документации, скопируйте их и подтолкните их к github.

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

Ответ 2

Правильный ответ - создать сиротскую ветвь. Я объясню, как это сделать подробно в моем блоге: http://sidja.in/post/62663941071

...

Перед запуском обновите до последней версии GIT. Чтобы убедиться вы используете последнюю версию, запустите

which git

Если он выпивает старую версию, вам может потребоваться увеличить PATH с помощью папка, содержащая только что установленную версию.

Хорошо, были готовы. После выполнения cd в папку, содержащую ваш gitcheckout, создать сиротскую ветку. В этом примере Ill ветвь "mybranch".

git checkout --orphan mybranch

Удалить все в сиротской ветке

git rm -rf .

Внесите некоторые изменения

vi README.txt

Добавить и зафиксировать изменения

git add README.txt
git commit -m "Adding readme file"

Вот оно. Если вы запустите

git log

вы заметите, что история фиксации начинается с нуля. Переключать вернитесь к своей основной ветке, просто запустите

git checkout master

Вы можете вернуться к сиротской ветке, запустив

git checkout mybranch

Ответ 3

Сделайте пустую новую ветку следующим образом:

true | git mktree | xargs git commit-tree | xargs git branch proj-doc

Если ваши файлы proj-doc уже находятся в фиксации под одним поддиректором, вы можете сделать новую ветку таким образом:

git commit-tree thatcommit:path/to/dir | xargs git branch proj-doc

который может быть более удобным, чем git branch --orphan, если это оставит вас с большим количеством git rm и git mv ing.

Попробуйте

git branch --set-upstream proj-doc origin/proj-doc

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

Ответ 4

Если версия git не имеет опции -orphan, этот метод должен использоваться;

git symbolic-ref HEAD refs/heads/<newbranch> 
rm .git/index 
git clean -fdx 

После выполнения некоторых работ

git add -A
git commit -m <message>
git push origin <newbranch>

Ответ 5

скажем, у вас есть главная ветка с файлами/каталогами:

git ветвь

мастер

ls -la (файлы и директории, которые вы можете сохранить в главном файле)

.git directory1 directory2 file_1 .. file_n

Шаг за шагом, как создать пустую ветку:

  • git checkout -orphan new_branch_name
  • Перед выполнением следующей команды убедитесь, что вы находитесь в правильном каталоге: ls -la | awk '{print $9}' | grep -v git | xargs -I _ rm -rf./_
  • git rm -rf.
  • touch new_file
  • git добавить новый_файл
  • git commit -m 'добавлен первый файл в новую ветку
  • git push origin new_branch_name

На шаге 2 мы просто удаляем все файлы локально, чтобы избежать путаницы с файлами на вашей новой ветке и теми, которые вы храните в ветке "master". Затем мы отсоединяем все эти файлы на шаге 3. И начиная с шага 4 мы работаем с нашей новой пустой ветвью.

Как только вы это сделаете, вы можете легко переключаться между ветвями:

git мастер проверки git checkout new_branch