Yeoman プロジェクトのサブディレクトリを展開するには、lá this Gist のサブツリー展開を使用します。この例では、ブランチはproductionと呼ばれ、gh-pagesではありません。
これは、Gitサーバーがgit subtree Push --prefix dist Origin production
コマンドを拒否した昨日まで完全に機能しました。
! [rejected] 9fe1683aa574eae33ee6754aad702488e0bd37df -> production (non-fast-forward)
error: failed to Push some refs to '[email protected]:web-and-new-media/graduation2015.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart.
本番ブランチにローカルに切り替えると(クリーンです)、git pull
オプションを使用しても、Your branch is up-to-date with 'Origin/production'.
は--rebase
を返します。
私たちのウェブUIを介してサーバー上の本番ブランチの内容を見ることができますが、そうするべきではありません。予想どおりdist
ディレクトリのコンパイル済み出力だけです。
そのためには、これらのファイルの上書きを安全に強制できるように思えますが、どのようにすればよいのでしょうか? git subtree Push
には--force
オプションがありません。
トリックは、サブツリー分割を強制プッシュにチェーンすることでした:
git Push Origin `git subtree split --prefix dist master`:production --force
これは、 http://clontz.org/blog/2014/05/08/git-subtree-Push-for-deployment/ 、実際にスタックオーバーフローに関する回答 this を参照するユーザー。私は以前にこれをざっと読みましたが、Steve Clontzの投稿は私にクリックをさせてくれました。
実際には、はるかに単純なソリューションがあります。
ソース: https://Gist.github.com/cobyism/4730490#gistcomment-233746
$ rm -rf dist
$ echo "dist/" >> .gitignore
$ git worktree add dist gh-pages
$ make # or what ever you run to populate dist
$ cd dist
$ git add --all
$ git commit -m "$(git log '--format=format:%H' master -1)"
$ git Push Origin production --force
$ cd ..