Как создать новую пустую ветку для нового проекта
Мы используем хранилище 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