#git #deployment #version-control #yeoman #git-subtree
#git #развертывание #контроль версий #йомен #git-subtree
Вопрос:
Я только что запустил git subtree split
свою главную ветку, но в поддереве ( dist
ветке) отсутствуют последние два коммита, которые находятся в master
ветке. Я не уверен, что здесь делать. Я раньше с этим не сталкивался. Это всегда работало без проблем.
Вот как выглядит мой сетевой график github (исключая dist
):
Из главной ветки, которую я запустил git subtree split -P dist -b dist
.
Если я запускаю git log
из dist
ветки, это показывает, что самая последняя фиксация 6d1620a
. Где 17c1f31
и 33dfc67
?
Кто-нибудь знает, что здесь происходит?
Более подробная информация, относящаяся к моему сценарию
Я использую метод развертывания, используемый проектами, созданными Yeoman. В основном это означает, что у меня есть общая папка проекта, в которой есть dev
(или app
) каталог, в котором выполняется вся разработка, и dist
каталог, в который создается проект (с помощью процесса сборки gulp). Поэтому для развертывания я просто разделяю dist
каталог на его собственную ветку и отправляю ее на текущий сервер.
Что выглядит примерно так:
gulp
git checkout master
git merge --no-ff dev
git subtree split -P dist -b dist
git push
Альтернативно git subtree push -P dist origin dist
также работает.
Ответ №1:
Я забыл запустить процесс сборки gulp. Из-за этого новая фиксация не повлияла на /dist
каталог.
Имеет смысл, что коммит не будет передан в каталог, на который он не повлиял. Но незнание этого поведения заранее действительно запутало ситуацию для меня.