私はgit repoのログをコーミングしていますが、コメントにリストされているコンフリクトのあるマージコミットを見つけていますが、実際にはマージコミットの一部として変更されたファイルはありません。いつ、どのようにこれが起こりますか?マージには2つの親があり、それらはまったく違うので、どのようにしてファイルの変更がパッチにリストされないのですか?マージでパッチに変更が反映されないのはなぜですか?
答えて
マージマージコミット(2人以上の1人以上の親)は、「結合された差分」を示します。 documentation for git show
はむしろ隠されたこのキーの段落があります:
なお組み合わせデフリストのすべての親から変更されたファイルのみ。
git diff 1111111 3333333
README
とfile1.txt
の両方への変更を示すだろう、と::git diff 2222222 3333333
は変化を示すだろうことは
3333333...
は両親1111111...
と2222222...
、それが持っているマージと仮定し、ある
README
とfile2.txt
の両方に送信します。さらに、README
の変更が異なるであるため、マージで両方の変更を組み合わせなければならないとします。次に:(3333333:README
は1111111:README
と2222222:README
の両方が異なるため)
git show 3333333
はあなたにREADME
が表示されますが、それは1111111
のいずれかのよう3333333
に同じだかのでないはあなたにfile1.txt
またはfile2.txt
(どちらかが表示されます2222222
)。
この場合(競合するファイル)は、各ファイルの複数の親のバージョンのうちの1つのみを選択することによって競合が解決されたことを意味します。
git log -p
を使用するとさらに悪化します。これは、マージコミット - デフォルトでは完全に差分リストをスキップします。
git log -p
を含むdiff表示コマンドのいずれかが、マージwith any of -c
, --cc
, or -m
を表示する方法を変更できます。 (--cc
オプションがgit show
のデフォルトです。2つの-
cc
の前にある文字が、c
とm
の前に一つだけがあることに注意してください。)ただし、唯一-m
は実際にあなたにを示しすべて違い、(実際には)コミットを複数の仮想コミットに分割します。それぞれにはNのいずれかの親があります。
- 1. コード変更がすぐに反映されないのはなぜですか?
- 2. ImageViewで変更が反映されない/反映されない
- 3. ルームパーシスタンスライブラリのクエリがすぐに反映されないのはなぜですか?
- 4. Drupalサイトでコードの変更が反映されない
- 5. パーティクルエミッタエディタ:次のビルドで変更が反映されない
- 6. IISでC#コードの変更が反映されない
- 7. ボタンにアクションの[NAME]プロパティが反映されないのはなぜですか?
- 8. レイアウト変更がSinatra/Puma/Nginxプロダクション設定に反映されないのはなぜですか?
- 9. Androidスタジオで変更が反映されない
- 10. VS2012 JavaScriptデバッガで変更が反映されない
- 11. Dockerのmysqlデータに変更が反映されていない
- 12. cmd + rの後に変更がシミュレータに反映されない
- 13. データの変更がInternet ExplorerのDropDownListに反映されない
- 14. tests.pyのdjangoの変更がmodels.pyに反映されない
- 15. React Redux - コンポーネントに変更が反映されていない
- 16. 新しいBluemixアプリに変更が反映されない
- 17. VB.NET:application.dll.configファイルへの変更がシステム内に反映されない
- 18. ProgressBarに値の変更が反映されないC#
- 19. コンポーネントプロパティの変更がUIに反映されない
- 20. Eclipseの変更が出力に反映されない
- 21. CSSの変更がビジュアルスタジオに反映されない
- 22. NSfetchedResultsControllerの変更がUIに反映されない
- 23. CSSへの変更がd3.jsサイトに反映されない
- 24. gspの変更がgrailsに反映されない2.5.1
- 25. JSファイルの変更がSpring Frameworkに反映されない
- 26. Observableの変更がビューに反映されない
- 27. Perl CGIの変更がブラウザに反映されない
- 28. コントローラの変更がビューに反映されない
- 29. ダイアグラムにDBの変更が反映されない
- 30. Xcode 8 - 制約の変更がプレビューに反映されない
「ファイルが実際にマージコミットの一部として変更されていない」ことをどのように知っていますか?あなたはマージコミットで 'git show'をしますか? 'merge commit'によって導入された変更を表示するには' git show .. 'を実行する必要があります。 –
マージコミットで 'git show'を実行し、ファイルをリストしません。 2つの親コミットで 'git show .. 'を実行すると、特定のファイルに4行の追加が表示されます。ただし、マージコミットからそのファイルを見ると、それらの4行は存在しません。 –
Sio