このページを優れたワークフローとして指している多くの参照を見つけたので、ここで説明するワークフローに従います。記事で述べたように、「機能」ブランチは開発者間で共有されますが、中央リポジトリには移動しません。
開発者「A」が。で新しい機能ブランチを開始するとしgit checkout -b newfeature develop
ます。ここで、開発者「B」もこの機能に取り組む必要があるとしましょう。これが私の問題です。
私がしたこと:
- 開発者「B」は、開発者Aのマシンをリモートとして追加します
- 開発者「B」が実行します
git branch remoteA/newfeature
- 開発者「B」はこのブランチで作業し、作業をコミットして、変更をremoteAにプッシュします。
現在、ステップ3は機能していません。メッセージが表示されます:
remote:error:デフォルトでは、非ベアリポジトリの現在のブランチの更新は拒否されます。これは、インデックスと作業ツリーがプッシュしたものと一致しなくなり、作業ツリーと一致するように「gitreset--hard」が必要になるためです。頭へ。
remote:error:リモートリポジトリで「receive.denyCurrentBranch」構成変数を「ignore」または「warn」に設定して、現在のブランチにプッシュできるようにすることができます。ただし、他の方法でプッシュしたものと一致するように作業ツリーを更新するように手配しない限り、これはお勧めしません。
remote:error:このメッセージをスケルチし、デフォルトの動作を維持するには、receive.denyCurrentBranchの構成変数を「refuse」に設定します。
私はすでに設定sharedRepository = true
しましたが、それは役に立ちませんでした。
2つの質問があります:
- 開発者間で機能ブランチを共有する正しい方法は何ですか?
- 開発者Bのリポジトリの変更を開発者Aの元のリポジトリにプッシュバックするにはどうすればよいですか?