68

GitHub でホストされている jQuery プラグインを開発しています。手動でコピーしてブランチgh-pagesにプッシュするデモが含まれています。変更をプッシュすると、変更masterが自動的にプッシュされるgh-pagesか、少なくともミラーリングされるセットアップが必要です。 .

私はすでにこの質問を見ましたが、これらの要件に関する私の質問に本当に答えているかどうかはわかりません:

  1. 私はTowerを使用しています。ソリューションがこの GUI で動作する限り、端末 (Mac) を使用して構成を変更してもかまいません。
  2. マシン上のすべてのリポジトリではなく、特定のリポジトリでのみこの「ミラーリング」が必要です。

乾杯

4

8 に答える 8

108

[remote "origin"]のセクションに次の 2 行を追加します.git/config

push = +refs/heads/master:refs/heads/gh-pages
push = +refs/heads/master:refs/heads/master

毎回push自動的に master を gh-pages にもプッシュします。これをjQuery Lifestream プロジェクトに使用しています。

于 2011-09-19T14:25:57.327 に答える
67
git checkout gh-pages
git merge master
git push origin gh-pages
于 2011-04-28T20:41:20.453 に答える
28

上記のdenbuzzeが示唆していることをしないでください!! プッシュ内の + (プラス記号) は、早送り以外の更新を静かに受け入れるようにします。これがダングリング コミットにつながることで取り返しのつかないほど作業が失われる可能性があるという難しい方法を発見しました。プラス記号を削除するだけで、より安全なアプローチになります。

push = refs/heads/master:refs/heads/gh-pages
push = refs/heads/master:refs/heads/master

強制的に更新する代わりに、警告とプルの提案が表示されるようになりました

To https://github.com/someuser/repo.git
 ! [rejected]        master -> gh-pages (fetch first)
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/someuser/repo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
于 2014-04-08T17:18:38.970 に答える
3

私は個人的にこれをエイリアスでラップするのが好きです:

alias gpogh="git checkout gh-pages && git merge master && git push origin gh-pages && git checkout -"

これにより、マスターがgh-pagesにミラーリングされ、github にプッシュされ、作業していた前のブランチに戻ります。

于 2014-05-17T19:43:21.177 に答える
2

コミットしてマスターにプッシュ..

それから :

git checkout gh-pages  // -> go to gh-pages branch
git rebase master // bring gh-pages up to date with master
git push origin gh-pages // commit the changes
git checkout master // return to the master branch
于 2014-08-19T05:35:20.063 に答える
1

更新: GitHub では、任意のブランチおよびディレクトリからページを公開できるようになりました。


gh-pagesブランチをマスターとして使用する方がずっと簡単でした。「マスター」には魔法のようなものは何もありません。それは単なる別のブランチ名です。gh-pages には魔法のようなものがあります。それは、GitHub がページを提供するために index.html を探している場所だからです。

このトピックに関する他の回答で詳細をお読みください。

マスターとして使用gh-pagesすることも、ミラーリングよりも簡単なサブツリーよりも簡単です。hereまたはheregit subtreeの説明に従って使用できます。デモを含むディレクトリがある場合は、そのディレクトリを1 つのコマンドでにプッシュできます。明確にするためにディレクトリに名前を付けたとしましょう。次に、変更をコミットして にプッシュした後、これを実行して gh-pages を更新します。gh-branchgh-pagesmaster

git subtree push --prefix gh-pages origin gh-pages

問題は、ファイルgh-pagesがその外部の他のディレクトリにあるファイルを参照している場合です。シンボリック リンクは機能しないため、gh ページとして機能するディレクトリにファイルをコピーする必要があります。

master として使用するgh-pagesと、この問題は発生しません。

于 2015-06-04T14:17:38.740 に答える