我有一个yeoman角度应用程序,默认情况下dist文件夹被忽略了。所以当我尝试这个时:git subtree push --prefix dist origin gh-pages
它失败了,因为它被忽略了。
我不想将dist文件夹推送到主分支,我只想把它推到gh-pages分支。
我怎样才能做到这一点?
答案 0 :(得分:4)
我最后为此编写了一个脚本。它使用更新的.gitignore
文件创建临时提交,其中包含已删除gh-pages
的行。
推送后,提交被丢弃。 if语句就在那里,所以你不会意外地失去工作。
STATUS="$(git status)"
if [[ $STATUS == *"nothing to commit, working directory clean"* ]]
then
sed -i "" '/gh-pages/d' ./.gitignore
git add .
git commit -m "Edit .gitignore to publish"
git push origin `git subtree split --prefix gh-pages master`:gh-pages --force
git reset HEAD~
git checkout .gitignore
else
echo "Need clean working directory to publish"
fi
答案 1 :(得分:0)
你的答案在这里:https://gist.github.com/chrisjacob/825950
上面的链接教你如何将文件推送到主文件,dist文件夹除外;然后,您只需导航到您的dist文件夹,然后直接推送到您的gh-pages分支。
您的问题将实现完美配置,但我个人仍然更喜欢使用传统的“从.gitignore删除dist”并运行git subtree命令“git subtree push --prefix dist origin gh-pages”。
现在你做出决定了!
答案 2 :(得分:-1)
您要更新所需分支上的.gitignore
文件(首选解决方案)。或push --force
强制更新。