Я хочу створити нову гілку GitHub, яка називається release
.
Ця гілка повинна бути порожньою ! Однак існує існуюча гілка з комітами x, і я не хочу мати її історію комітів.
Єдиний метод, який я знайшов, - це створення локальної --orphan
гілки.
Я хочу створити нову гілку GitHub, яка називається release
.
Ця гілка повинна бути порожньою ! Однак існує існуюча гілка з комітами x, і я не хочу мати її історію комітів.
Єдиний метод, який я знайшов, - це створення локальної --orphan
гілки.
git push origin _branch_
.
Відповіді:
Що поганого в --orphan
варіанті? Якщо ви хочете гілку, яка порожня і не має історії, це шлях ...
git checkout --orphan empty-branch
Потім ви можете видалити всі файли, які будуть у вас у проміжній області (щоб вони не виконувались):
git rm -rf .
На цьому етапі у вас є порожня гілка на вашій машині.
Перш ніж ви зможете натиснути на GitHub (або будь-яке інше сховище Git), вам знадобиться принаймні один коміт, навіть якщо в ньому немає жодного вмісту (тобто порожній коміт), оскільки ви не можете натиснути порожню гілку
git commit --allow-empty -m "root commit"
Нарешті, підсуньте його до пульта дистанційного керування та розкрийте пиво
git push origin empty-branch
git add .
крок після того, як ви видалили всі файли та перед тим, як зробити коміт?
--orphan
добре підходить для створення порожньої гілки локально, однак для того, щоб її натиснути або взаємодіяти з іншими гілками, вам знадобиться коміт.
Створення нового коміту на гілці-сироті - це не гарна ідея, оскільки ви не зможете взаємодіяти з іншими гілками. Тобто
git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories
Натомість вам слід віддати перевагу створенню нової гілки з першого коміту master. Якщо коміт не порожній, ви можете додати порожній коміт перед першим, як пояснив @houtanb.
Прийнята відповідь призвела мене до деяких проблем , тому я зробив це:
$ git branch
* staging
$ git branch master c74d99cf46f6ed23e742f2617e9908294b4a608b
$ git checkout master
Switched to branch 'master'
І отримав те, що я хотів, без проблем злиття / витягування запитів. Мені просто довелося вибрати базовий коміт, щоб створити мою другу гілку .