まず第一に、ソフトウェアのバージョンごとに独自のリポジトリは必要ありません。リリースする場合は、タグを作成するだけです。このタグを参照すると、いつでもリリース済みのバージョンに戻ることができます。
2人の開発者のそれぞれがプッシュできる中央レポがある場合は、そのレポを裸のレポにする必要があります(参照された質問で受け入れられた回答が推奨するように)。
ベア リポジトリにはチェックアウトされた作業コピーがないため、いつでもプッシュできます (少なくとも、以前に最新バージョンを取得している限り)。
しかし、あなたのシナリオは少し違うように聞こえます: たとえば、2 台のコンピューターがあり、それぞれが作業コピーを持ち、これら 2 つのボックス間でプッシュ/プルしたい場合、解決策は、マスターにプッシュしている間だけ使用されるブランチを持つことです。他のコンピュータから。
次のワークフロー (現在ブランチがチェックアウトされているリモートにブランチmyfeature
の変更をプッシュする場合:notebook
desktop
myfeature
オンdesktop
:
git checkout -b temp
次にnotebook
、
git push desktop myfeature:myfeature
戻るdesktop
:
git checkout myfeature
git branch -D temp
それでおしまい。
もう 1 つの方法 (2 人の開発者 (アリスとボブ) が同じブランチで作業している場合) は、ボブがmyfeature
alice からの最新バージョンを取得したい場合、アリスに変更をプッシュさせる代わりに、アリスから変更をプルするというものです。彼のレポ。alice のコンピューターがbob のリポジトリでリモートとして構成されており、bob が現在ブランチをチェックアウトしているとします。alice
myfeature
どちらのボブも
git pull alice
彼のブランチalice/myfeature
の追跡ブランチとして設定されている場合( で設定)。またはmyfeature
git branch --set-upstream myfeature alice/myfeature
git fetch alice
git merge alice/myfeature
Alice のmyfeature
ブランチが追跡ブランチとして設定されていない場合。