2017-10-16 10 views
2

私はGITを使い始めました。 devAとdevBという2人の開発者しかいない非常に小さなチームを考えてみましょう。ここで私は自分の仕事をマスターに統合した後、誰かがgitリポジトリのマスターに新しいコミットをプッシュしたが、プッシュしなかった場合はどうすればよいですか?

はシナリオです:

  1. 彼らはすべてのver-01コミットに基づいて作業しています。
  2. DevAはver-02をコミットし、中央リポジトリにプッシュしました。
  3. DevBがver-03をプッシュしたが、devBがマスターをフェッチし、今ver-03を含むマスターとver02を含むorigin/masterを持つようになりました。彼はorigin/masterとmasterをマージし、ver-02とver-03の両方を含むver-04を持っていて、通常は中央リポジトリにプッシュします。

私が知りたいことは、DevBがコードをマージしているときに、DevAが別のバージョン05をプッシュしたことです。 DevBがマスターをorigin/masterとマージした後も、ver-04とver-05の間の競合を解決しなければならないため、まだプッシュできません。私がDevBならば、私は 'git fetch origin master'を走らせましたが、どのコマンドを実行してマージする必要がありますか?私は 'git merge origin master'を試みましたが、それは私に 'すでに最新のものです。'と言いますが、私がそれを押すと失敗しました。版である>は、最新のリモート変更が含まれている、 - >が03のver-

  • 起源/マスターである私の変化を含んでいる -

    • は、マスターは:

      は、私が実際に3つの支店があることがわかりました-05

    • HEAD - > origin/master - >にはver-02とver-03からマージされたver-04が含まれています。

    次に何をすればよいですか?

  • +1

    はgitのフェッチ ''試してみてくださいGitのmerge'や解決が

    gitのは、 "メッセージ"

    Gitのプッシュを-mをコミット競合

    (リモート変更の上、変更を適用します) 'または' git pull' –

    +1

    何かをする前にあなたの仕事をバックアップすることをお勧めします! – Matt

    +2

    'git pull origin master'、もしあればコンフリクトを修正してから(コミットしてください)、' git push origin master' –

    答えて

    0

    私はバックアップ私の仕事だろうまず: gitのチェックアウト-bバックアップマスターに

    移動:リモートから Gitチェックアウトマスター

    プルと競合を解決: Gitは

    を引きます

    変更をプッシュする: git push

    私は強くブランチで作業することをお勧めします。彼の):

    Gitチェックアウト-b機能(新しいブランチを作成し、その上にチェックアウトを行います) Gitのプッシュ-u原点機能(リモートへの分岐をプッシュ) Gitが-amをコミット "Commit1"

    今 または gitのマージマスター(あなたはこの枝に一人で作業している場合)(他の人が同様にブランチを使用している場合)

    Resolveは

    を競合 Gitのリベースマスター:2つのオプション(フィーチャーブランチ上にある)を持ちます

    gitチェックアウトのマスター(マスターへの移動)

    Gitのマージ機能(マスターにあなたのブランチをマージ)

    Gitのプッシュ


    あなたはあなたができる習得するための小さな変化を加えた場合:

    gitのをstash(あなたの仕事を秘密裏に保存)

    git pull(ローカルにリモートで変更)

    スタッシュが適用

    gitが

    関連する問題