2012-04-03 9 views
1

私はgit pull originを実行しましたが、私はマスターと私のブランチをマージするいくつかの問題があります。ここで git pull/mergeからの衝突を解決する正しい方法ですか?

は、私がやったことだ:

  1. が私の枝上のすべての変更をコミット
  2. gitのチェックアウトのマスター
  3. gitのプル原点マスター
  4. Gitチェックアウト私の枝
  5. gitのマージマスター
  6. 'project.pbxproj'を開き、必要なマーカーをすべて削除しました
  7. オープン、他の競合ファイルと削除に必要なマーカー
  8. gitの両方のファイルとGitは

をコミットするために追加この正しいですか?

答えて

1

はい、これはマージの競合を解決するために完全に許容される方法です。ローカルのmasterブランチは必要ありません.2、4、5の手順は省略できます。

1

UPDATE:更新質問へこれは、更新されて感謝...

あなたがプルを行う際に、Gitは既存の変更をマージし、競合を通知しようとします。ブランチで変更をコミットしているようですが、newBranchと呼んでいます。その後、ローカルのマスターブランチをチェックアウトし、プルを実行します。ストレートプルを実行すると、gitはfetchコマンドとmergeコマンドを組み合わせ、競合が発生した場合にのみ介入させます。

git push origin master 

は、元のリモートにマスターブランチをプッシュします。同様に、

git pull origin master 

これは、リモートブランチから現在のブランチにプルするものです。

私はステップ(4)であなたがチェックアウトしているブランチについて言及するのを忘れましたが、そのnewBranchを仮定しましょう。手順5でマスターINTO newBranchをマージしようとしていますが、これは通常とは逆です。一般的には、機能をテストしたり、変更した後にブランチをマスターブランチにマージします。マージからの競合を解決した後、マージの一部としてコミットされます。マージされたマスターブランチを原点からマスターにプッシュできます。

+0

私の質問が更新されます。レスポンスありがとう! –

+0

プッシュとプッシュについては間違っています。まず、コマンド、プルまたはプッシュ、リモート(この場合はエイリアス)、次にref、この場合はマスターブランチです。だから "git push origin master"と "git pull origin master"です。そして、それはマスターブランチであるので、その起点/マスターを追跡するためのデフォルト設定であるので、 "git pull"と "git push"だけが必要です。 – ralphtheninja

+0

あなたは正しいです。私は正しい答えを更新しました。 – jmstone617

関連する問題