ここで私は何をしましたか:
- マスターから開発ブランチを作成しました。
- いくつかのファイルを変更してコミットしました。
--no-commit
パラメータを使用して開発ブランチを master にマージしました。git reset --hard
開発ブランチで変更されたいくつかのファイルで実行します。結果として、マスター ブランチには開発ブランチからのいくつかのオブジェクトのみが含まれます。つまり、開発の変更を部分的にマージしました。- master に変更をコミットしました。
- しばらくして、マスター ブランチが他の開発者によって更新され、開発ブランチを更新するためにマスター ブランチをマージしました。
前回のマージで master にコミットしていない開発オブジェクトが、master からのファイルによって上書きされるという事実を受け入れる準備ができていました。しかし、の出力ではgit log --follow dev-modified-file.txt
、開発の変更を上書きしたコミットが表示されません。
git log --follow dev-modified-file.txt
私の開発ブランチで実行 すると、開発の変更を伴う必要なコミットが表示されます。しかし、その変更を元に戻すコミットを見ることはできません (実際にはそのようなコミットはありません) が、dev-modified-file.txt
開発コードを追加するコミットがあるにもかかわらず、私の作業ツリーにはファイルのマスター バージョンが含まれていますが、そのコードを削除するコミットはありません。
なんで?
そして、マスター ブランチのコードがどのようにして私の開発ブランチに忍び込み、痕跡を残さなかったのでしょうか?
PS私の説明が不明確な場合は、コメントで質問してください。この投稿を説明し、それに応じて修正します.
編集:マスターを開発にマージした後、マスターと開発ブランチの違いがわかりません(省略された変更はなくなりました!)そして、開発ブランチでそれを担当するコミットが表示されません!
戦略の統合に関係している可能性があると思います...しかし、どのように?ご覧のとおり、開発ブランチのログは次のようになります。
- ファイルに変更を追加しました — 作業フォルダー内のファイルにその変更が含まれています。
- マスター ブランチを開発ブランチにマージしました。多くのコミットが開発ブランチに送られ、編集したファイルはマスター ブランチで 1 つになりました。
マージ後にファイルに変更を追加したところ、変更が跡形もなく消えてしまいました!