0

次のセットアップがあります。ラップトップ (L)、中央マシン (サーバーの場合は S)、固定 PC (P) があります。

P と S は同じ LAN 内にあります。git アーカイブは、S 上のブランチごとに 1 つのリモート トラッキング ブランチを使用して簡単に交換できます。

問題は L にあります。LAN にある可能性があります。次に、IP 経由で S に直接接続します。また、LAN の外にある場合もあります。次に、別のマシン (ルーターの場合は R) への SSH 接続をポート転送トンネルで開く必要があります。次に、L でトンネルを介して S にアクセスできます。

originサーバーの LAN-IP を使用してマスター用のリモートを追加しました。git remote add server.intern ssh://localhost:2222/...これで、リモートブランチを使用して2番目のリモートを追加し、remotes/server.intern/master正しくフェッチしました。を使用して、アクティブ ブランチ (マスター) をトンネル経由でプッシュしようとしましたgit push server.intern

エラーが発生します:

fatal: You are pushing to remote 'server.intern', which is not the upstream of 
your current branch 'master', without telling me what to push
to update which remote branch.

マスター用の上流ブランチが 2 つあることを git に伝える方法がわかりません。今のところ、キーワード master を追加できますが、解決策があればいいのですが。

ありがとう

4

2 に答える 2

0

Git で 2 つのアップストリームを持つことはできませんが、プッシュ URL を提供できます。あなたが本当にやりたいことは、バックアップを維持すること、または同様のものである場合。オリジンに対してこれを行うことができます:

git remote set-url --push --add origin <origin-url>
git remote set-url --push --add origin <alternate-url>

これにより、オリジンにプッシュするたびに<origin-url>との両方にプッシュされます。がリモートとしても存在する<alternate-url>場合、最適なセットアップとは言えません。<alternate-url>リモート参照は次のフェッチまで更新されませんが、私にとっては何年もの間十分に機能しています。

于 2013-09-26T23:54:57.263 に答える