如何将git忽略文件夹推送到子树分支?

时间:2014-10-06 20:40:55

标签: git github

我有一个yeoman角度应用程序,默认情况下dist文件夹被忽略了。所以当我尝试这个时:git subtree push --prefix dist origin gh-pages它失败了,因为它被忽略了。 我不想将dist文件夹推送到主分支,我只想把它推到gh-pages分支。

我怎样才能做到这一点?

3 个答案:

答案 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强制更新。