をだから、マージとリベースの違いは何あなたがここに実行されています。あなたがしたとき:
git pull origin master
マスターからの変更をマージしたマージコミットを作成しました。そのマージコミットは空ですが、作成されました。マージからのこの動作は期待されますが、私の意見では望ましくありません。コミットは、2つのブランチ(ローカルとオリジナルマスタ)の違いを保持するために作成され、相違の有無にかかわらず作成されます。代わりに発行した場合
git pull --rebase origin master
リベースを済ませたとします。 rebaseは、ローカルとOriginマスターが共通している最後のコミットを探し、そのコミット後の変更を一時記憶域に入れてから、Originマスターからの変更をレイヤ化します(SomeOtherFile.csはNotYouからコミットします)。最後に変更を再生しますその新しい更新された行の上に。このリプレイはコミットによってコミットされるため、10回コミットすると10回先に実行されます。
競合がない場合、これはすべて瞬時に、そして介入なしで行われます。競合がある場合は、あなたが途中で停止され、問題を修正した後、あなたは、プロセスが上に移動してい
git rebase --continue
を発行することを求めました。ここで起こるのは、マージコミットを追加するのではなく、元のコミットを再定義することによって競合が処理されるということです。しかし、それはファイルの履歴をきれいに保ちます。あなたが見たようにマージはしません。
私は1つのファイルにのみ触れました。追加。私の約束の前に、そして引き上げの前に行われました。その時点で変更された唯一のファイルはtest.cs. – Roger
誰が 'SomeOtherFile.cs'を変更したのですか? –
hm ...元の投稿でこの行を編集しました:4.> SomeOtherFile.csをプルダウンします(新しいものではなく他の誰かによって変更されました)。それは理にかなっていますか? – Roger