2012-06-26 7 views
5

私はgit repoを持っていて、それをサーバーにプッシュしました。それから私は、サーバー上にポスト受信フックをセットアップしました。私はそれが動作確認したい。私はそれが動作するかどうかを確認するために再度コミットする必要がありますか?本当の価値がないコミットを続けるのではなく、私がこの設定をしようとしている間、私は本当にプッシュを強制するだけです。それは機能していない、私はそれを得ることはありません。コミットすることなくプッシュ

$ git push --force origin master 
Everything up-to-date 
+0

特にGitHubページのフォーク:http://stackoverflow.com/questions/8587321/github-pages-in-forked-repo –

答えて

5

これを達成するには、古いコミットをプッシュする必要があります。

git push --force origin HEAD^:master 

あなたはHEADが再びコミットプッシュすることができ、この後:

git push origin master 

をしかし、代わりにすべての時間を考えるプッシュたとえば、あなたはこのコメントを使用して、現在のHEAD前に右をコミットプッシュすることができ手動でフックを呼び出します。これは通常簡単ですが、確かにすべてがうまくいくと思うときは、実際のプッシュでテストすることを忘れないでください。

+0

フックのことを明確にすることはできますか?またはいくつかのガイドを指す –

2

あなたが使用することができます少し汚れトリックがあります:

git stash save && git push --force origin "[email protected]{0}:master" && git stash pop 

これは3つの事を行います。

  1. スタッシュ現在コミットされていない変更を。 Stashingは新しいコミットを作成しますが、別のrefに作成します。それはあなたの歴史を汚すことはありません。さらに、変更から作業ディレクトリをクリアします。手順3を参照してください。
  2. 隠しコードをプッシュ
  3. 隠しポップを表示して、隠しコードを消去し、すべてのファイルを作業ディレクトリに戻します。

これは、ローカルコミットを作成せずにすべてのファイルをリモートに効率的にプッシュします。

関連する問題