5

概要:ファイルをローカルで編集してから、GithubとWebサーバーの両方にプッシュしたいと思います。

私は2つのリモコンを問題なくセットアップしているので、今はこれを行うことができます。ただし、ブランチAをローカルでチェックアウトし、ブランチBをサーバーでチェックアウトする必要があります。次に、サーバーにSSHで接続し、ブランチA(必要なブランチ)をチェックアウトする必要があります。私は本当に2番目のブランチを望んでいないか、必要としませんが、多くの投稿は、非ベアリポジトリにプッシュできないか、プッシュすべきではないことを示唆しています。より良い方法があるに違いありません。rsyncを使用するだけでも、これよりも簡単です(そして私はしばらくの間それを行いました)。

不思議なことに、これはGithubでは発生しません。ほとんどすべてのリポジトリにはブランチが1つしかないため、この警告が表示されることはありません。

receive.denyCurrentBranch警告メッセージには、無視するように設定できると書かれていますが、それがどれほど安全/正気かわかりません。誰かが私の漠然とした説明を理解し(これは私のgitの知識が限られているためです)、最適な解決策を知ってくれることを願っています。

4

1 に答える 1

4

Webサーバーのベアリポジトリに受信後フックを設定する方が簡単です。
このように、このフックは次のことができます。

  • ディレクトリを変更し、新しい変更を実際の非ベアリポジトリにプルします
  • 必要なブランチをチェックアウトします

Webサイトステージング用のGit受信後フック」および「 Gitを使用したWebサイトの管理」の作業を参照してください。

$ mkdir /var/www/www.example.org
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
$ chmod +x hooks/post-receive

(注:おもしろいことに、 2つの異なるリモートリポジトリに同時にプッシュできます)

于 2012-06-05T06:42:00.753 に答える