0

私たちは数人でプロジェクトに取り組んでおり、(サーバー上に) 次のブランチ構造を持っています。

master
staging
contributions

私は人々に貢献ブランチで働くように頼み、次のようにリポジトリをクローンするように頼みました:

git clone repository_address -b contributions

上記のコマンドはリポジトリを複製し、投稿ブランチに切り替えるという印象を受けています。上記のコマンドは、リモート ブランチを指すローカル追跡ブランチも作成していると想定していcontributionsます。

奇妙な点は次のとおりです。誰かがリポジトリにプッシュすると、GitHub の履歴は期待どおりになります (コミットのリストが表示されるだけです)。しかし、ある人がプッシュする前に別の人がプッシュした場合、後のプッシュに対する 2 つのコミット メッセージが次の形式で表示されます。

ここに画像の説明を入力

メッセージには「ブランチの貢献を貢献にマージする」と書かれているため、これは私には非常に直感的ではないようです。また、そのようなコミットのログには、その人が最後にプルしてからブランチに追加されたすべてのファイルが表示されます。

上で起こったことは、P がプッシュの前にプルを行い、その後、プッシュを行う前に彼の変更のためにプルを行う必要があり、2 人とも「マージ」という余分なコミットを取得したことです。

セットアップに何か問題がありますか?

4

1 に答える 1

2

を実行すると、とのgit pull2 つのコマンドが実行されます。のため、これらのマージ コミットはログに表示されます。これを回避するには、代わりに を使用できます。この場合、最も簡単な解決策は を使用することです。git fetchgit mergegit mergegit rebasegit mergegit pull --rebase

于 2013-02-14T20:08:30.577 に答える