У меня есть репозиторий мерзавца (по github.com) с двумя ответвлениями: ведущее устройство и gh-страницы. Я хотел бы иметь ответвление gh-страниц в подкаталоге, так, чтобы я не должен был переключать ответвления каждый раз.
repo/
(content of the master branch)
gh-pages/
(content of the gh-pages branch)
Это возможно?
Это не то, как все должно работать. Вы теоретически могли бы клонировать репозиторий в подкаталоге вашего оригинального клона и пометить этот каталог как исключенный из репозитория более высокого уровня, но не было бы гораздо проще просто проверить его в совершенно другом каталоге вместо подкаталога?
То есть...
/repo/master/(clone on master branch)
и затем другой клон, который находится на другой ветке
/repo/gh-pages/(clone on gh-pages branch)
Ветки в git являются указателями на коммиты (которые перемещаются), и поэтому иметь ветку как подкаталог невозможно.
Справедливости ради, git co gh-pages
не намного сложнее, чем cd ../gh-pages
Обычно при управлении версиями не рекомендуется объединять несколько проектов в один репозиторий. Например, что, если кто-то захочет форкнуть ваш репозиторий, но не разместить свою копию на GitHub? Тогда каталог gh-pages
будет для них совершенно бесполезен. Даже если бы они разместили свои на GitHub, каталог gh-pages
вполне мог по-прежнему не иметь для них никакого отношения.
Я понимаю, что способ сделать это на GitHub в некоторой степени противоречит этому совету (в конце концов, даже если они находятся в разных ветвях, они все еще находятся в одном репо). Однако ветки в этом случае совершенно не связаны (у них нет общей истории), поэтому с практической точки зрения это как если бы они были в отдельных репозиториях. Если кто-то клонирует ваше репо и не хочет ветвь gh-pages
, он может удалить ее, и это не повлияет на ноль на мастер
.
Возможно, вы ищете опцию слияния поддеревьев.
Она позволит вам выписать несвязанную ветвь в подкаталог другой и затем объединить их туда и обратно. Однако вам всё равно придётся проверить gh-pages и слить изменения из основного репозитория, прежде чем pushes станет доступен на GitHub.
Вы также можете проверить gh-pages как подмодуль вашей основной ветки, если вам так удобнее.