2012-04-07 4 views
0

私はgitの初心者で、gitを使ってプロジェクトのいくつかの友人と協力する方法を理解したいと思っています。私の問題は、gitの "HEAD(SVNのような)"に更新する方法を理解しようとしています。私はgitのことが少し違っていることを理解しています。HEADへのGitのアップデート

このような状況を考えてみましょう。人物Aと人物Bがあります。人物Aは1つ追加してファイルを変更します。彼はその後、実行します。

  1. プル原点マスター
  2. Gitはこれまでのところ、そうpersonAbranch
  3. Gitのプッシュ原点マスター

をマージマスターするために彼自身のブランチ

  • スイッチ上のコミットこれはGitHub上でリポジトリがPerson Aの変更で更新されているため動作します。

    ここで、この間にB人が自分自身も変更を加えたとします。彼も1追加します。人Bが彼の変更を同様にコミットできるように、何を "HEADに更新する"べきか?人物Bが試みたのは...

    1. 自分の枝に自分自身の変更をコミットしています。
    2. gitのプル起源マスター
    3. gitのマージマスターイアンをマスターするスイッチング

    4行目では、常に争いの苦情を受け取ります。なぜ?!

    ご協力いただければ幸いです。

  • 答えて

    1

    gitが競合を訴えている場合、それは人物Aと人物B(彼の名前はイアンかもしれませんか?)が同じファイルを変更したことを意味します。どちらのファイルもバイナリファイルで、gitは2つの異なる変更を決して解決できません。または、テキストファイルであり、2つの変更が同じ行セットに接します。

    この競合を解決する必要があります。 git mergetoolを使用してこれを支援することができます。

    (競合はgitのに固有のものではありません。彼らは、その理由と同じ種類のために、あまりにも、Subversionで発生することがあります。)

    +0

    助けケンThomasesてくれてありがとう。私はイアンと私がそれをテストしたとき、私は "テストファイル"と言うファイルを持っていると思います。私にとっては、「アレックスの追加」という行が追加されます。イアンは自分のコンピュータに「イアンの追加」という行を追加します。私はgitもマージすることを望んでいましたが、同じ行にいるので推測すると動作しません。しかし、もしIanが自分の行と衝突しないように、追加の行をファイルの下に置いて(例えば、Enterを押してください)、助けてくれるでしょうか? gitは2つをマージできますか? – user941401

    +0

    いいえ、たとえば、あなたのラインが元のラインの直後にあるのか、イアンの追加の後に行くのかをgitがどのように知ることができましたか? –

    関連する問題