我有一個yeoman角應用程序,默認dist文件夾被忽略。所以當我嘗試這個:git subtree push --prefix dist origin gh-pages
它失敗,因爲它被忽略。 我不想將dist文件夾推送到master分支,我只想將它推送到gh-pages分支。如何將忽略git的文件夾推送到子樹分支?
我該如何做到這一點?
我有一個yeoman角應用程序,默認dist文件夾被忽略。所以當我嘗試這個:git subtree push --prefix dist origin gh-pages
它失敗,因爲它被忽略。 我不想將dist文件夾推送到master分支,我只想將它推送到gh-pages分支。如何將忽略git的文件夾推送到子樹分支?
我該如何做到這一點?
您可以更新所需分支上的.gitignore
文件(首選解決方案)。或者push --force
強制更新。
你的答案就在這裏:https://gist.github.com/chrisjacob/825950
上面的鏈接教你如何將文件推送到主,除了DIST文件夾;然後,您只需導航到您的dist文件夾,然後在那裏直接將您推送到您的gh-pages分支。
你的問題會達到完美的配置,但我個人更喜歡使用傳統的「從.gitignore刪除dist」並運行git subtree命令「git subtree push --prefix dist origin gh-pages」。
現在你做出你的決定!
我最終爲此寫了一個腳本。它會創建一個臨時提交,並更新.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
我沒有本地分支。它是這樣的: root - src - dist - .gitignore src文件夾將文件編譯到dist文件夾中。我沒有gh-pages本地分支,我直接從主頁推送到gh頁面。但我不希望dist文件夾包含在主文件夾中 – brielov 2014-10-06 20:53:34
只需更新'gh-pages'分支,以使'.gitignore'文件不包含'dist'文件夾。然後用你需要的文件創建另一個提交。 – 2014-10-06 20:57:34