Вы можете сделать это, имея две песочницы, указывающие на одно и то же хранилище GitHub, одну с извлеченной веткой dev
, где вы изменяете файлы, и одну с проверенной веткой master
, для обновления файлов dist .
Здесь я предполагаю, что <repo>
уже существует на GitHub, но у него могут быть или не быть ветки.
Настройте ветку dev
, в которой вы редактируете свой код:
git clone <repo> repo.dev
cd repo.dev
git checkout -b dev # remove -b if origin/dev exists
# edit, commit, edit, commit, edit, commit
git push --set-upstream origin dev # remove --set-upstream if you removed -b above
Настройте ветку master
, в которой вы публикуете свой код:
cd ..
git clone <repo> repo.dist
cd repo.dist
git checkout -b master # remove -b if origin/master exists
# copy the .vuepress/dist directory into this sandbox as required for deployment
git add .
git commit -m 'initial dist'
git push --set-upstream origin master # remove --set-upstream if you removed -b above
Теперь, в следующий раз, когда вы захотите внести изменения:
cd ../repo.dev
# edit, commit, edit, commit, edit, commit
# make vuepress update repo.dist/.vuepress/dist,
# possibly by symlinking it from your repo.dev sandbox.
cd ../repo.dist
git commit -a -m'updated dist'
git push
Теперь у этого решения есть именно то слабое место, о котором @NitsanAvni упомянул в комментарии к своему ответу: ветви master
и dev
не имеют ничего общего, даже их первоначальный коммит. Так что это может быть не лучше, чем наличие двух репозиториев, но при этом все держится вместе, что, как я вижу, может быть удобным.
Примечание: вам нужны две отдельные песочницы, даже если у вас есть только один удаленный репо, потому что в противном случае невозможно иметь обновленные представления одновременно для разных ветвей в одной песочнице.