私は git の初心者なので、知識不足を許してください。しかし、Google でどのような質問を検索すればよいかさえわかりません。
私は大規模なプロジェクトを持っていますが、ローカルで開発し、git を使用してリモート Web サーバーにプッシュすることに取り組んでいます。サーバーには、次のコマンドで提供するファイルをコピーする post-receive フックがあります。
GIT_WORK_TREE=/my/remote/webserver/base/directory git checkout -f
これは何ヶ月もうまく機能しています。
今、私はスピンオフを構築し、私の webserver で新しいブランチを実行したいと考えています。また、スピンオフ ブランチとマスター ブランチを切り替えたり、サーバーのコードを上書きしたりして、1 つのサーバーだけで 2 つの別個の Web サイトを同時に開発できるようにしたいと考えています。まず、新しい git ブランチを作成します。
git checkout -b spinoff
次の行を追加してコミットしました。
git commit -a -m 'test'
[spinoff 51f90e9] test
1 file changed, 1 insertion(+)
今、リモートブランチにプッシュしようとしています。これは動作しません
git push origin master
(everything up to date)
このコマンドは期待どおりにプッシュしますが、Web サーバー経由でファイルをコピーしません。
git push origin spinoff
マスターにプッシュするように設定しても役に立たないようです:
git branch --set-upstream spinoff origin/master
[@Klas Mellbourn の指摘に従って編集] これは git 1.7 の構文です。. あなたがgit 1.8を持っている場合。、構文は次のとおりです。
git branch -u origin spinoff
ここでいくつかの重要な重要な概念が欠けていることはわかっています。私の推測では、予想どおり 2 つのリモート リポジトリがあると思われますが、スピンオフ リポジトリから Web サーバーにコピーするために別のものをセットアップする必要があります。
リモートリポジトリの HEAD ファイルを編集する必要があると思いますか? これには現在以下が含まれています。
ref: refs/heads/master