2017-08-23 8 views
1

簡単な質問私は自分のプロジェクトのフィーチャーAで作業していて、友人がフィーチャーBで作業しているとします。私たちはどちらも同じマスターソースコードから開始しました。そして、これは起こります:(Github)フィーチャーAをマスターにマージすると、他の誰かがフィーチャーBをマスターにマージします。機能Aは失われますか?

  • 私はマスターに私のブランチをマージします。 (特集A)
  • プロジェクトをプッシュします。
  • その後、ブランチをマスターにマージします。 (特集B)
  • 彼はプロジェクトをプッシュします。

私のブランチ(機能A)は処理中に失われますか?この状況でどのように適切にマージしますか? (私の友人の枝に私の枝を最初にマージしてからマスターに合併することはできますか?)(彼はおそらくプッシュ前に(マスタから)プルする必要がありますが、コードは機能Aを持たないでしょう)

+1

一貫性のある履歴を保持するために押す前に、変更を自分のものに組み込む必要があります。 – jonrsharpe

+1

あなたの友人は単にマスターから引っ張らなければなりません。そして、それはあなたが決してプッシュを強制してはならない理由です。 – Terry

答えて

0

ヒストリは前記リモートから発散するため、リモート・リポジトリに直接プッシュすることはできません。

! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://github.com/[me]/[project].git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. 

私がコミットし、が、その後押し戻す彼/彼女を再生するBためには、B側のgit pull --rebase --preserve-mergesをお勧めします。

関連する問題