git log と git whatchanged は 2 つのコミットを示していますが、両方とも同じ行が追加されているため、途中で削除されたので、同じ変更を再度追加できましたか?
以下のコマンドを試してみました。行が削除されたことを示す単一のコミットがない場合、同じ 2 行が追加された 2 つのコミットがどのように存在するのでしょうか。これら2つのコミットの間に、このファイルに何が起こったのかを見つけるにはどうすればよいですか?
git log --stat --follow -p at_Objects/AtResctrCase.cpp
コミット 914f8e87cb88e2923ed089a579d69cfa21ae0bc4
at_Objects/AtResctrCase.cpp | 2++
1 ファイル変更、2 挿入 (+)、0 削除 (-)
seller_bid_amount.clear();
//F 27116
auction_items.clear();
+ //F-41959
+ store_id.clear();
コミット 6fe48ea09abae01a9bfea37e6ccf8e6c6fb360c2
at_Objects/AtResctrCase.cpp | 2++
1 ファイル変更、2 挿入 (+)、0 削除 (-)
auction_items.clear();
//F-39023
is_acm_case = false;
+ //F-41959
+ store_id.clear();
git diff 6fe48ea09abae01a9bfea37e6ccf8e6c6fb360c2^..914f8e87cb88e2923ed089a579d69cfa21ae0bc4 -- at_Objects/AtResctrCase.cpp
diff --git a/at_Objects/AtResctrCase.cpp b/at_Objects/AtResctrCase.cpp
index 91fe41a..878d184 100644
--- a/at_Objects/AtResctrCase.cpp
+++ b/at_Objects/AtResctrCase.cpp
@@ -32,4 +32,6 @@ void AtResctrCase::clear()
auction_items.clear();
//F-39023
is_acm_case = false;
+ //F-41959
+ store_id.clear();
}
「git log」を実行すると、間にいくつかのコミットが見つかり、このファイルがいずれかのコミットで変更されたかどうかを確認しました。最近のものから古いものの順に。行が削除されたコミットが見つかりました。b4eec3024a18bd502735d88c31891eea646d3356 マージ: 9a74a46 66cc3f1. しかし、他のコミットがこのファイルを変更していないのに、なぜそれを削除する必要があるのでしょうか? 自動マージによって行が削除されましたか? このファイルがマージコミットで削除された場合、「git log --stat --follow -p at_Objects/AtResctrCase.cpp」または「git diff」に表示されなかった理由。どんな提案でも大歓迎です。
$ git show -m --name-status 914f8e87cb88e2923ed089a579d69cfa21ae0bc4 | grep AtResctrCase.cpp
M at_Objects/AtResctrCase.cpp
$ git show -m --name-status 914f8e87cb88e2923ed089a579d69cfa21ae0bc4:at_Objects/AtResctrCase.cpp | grep F-41959
//F-41959
上記のコミットでは、行が手動で再追加されました。
$ git show -m --name-status 62a3731fbc1d008342ac72614faaf7fd9e7e312b | grep AtResctrCase.cpp
$ git show -m --name-status 8a8de0663381f70677d6685d4ae214becd1f4310 | grep AtResctrCase.cpp
$ git show -m --name-status **b4eec3024a18bd502735d88c31891eea646d3356** | grep AtResctrCase.cpp
M at_Objects/AtResctrCase.cpp
$ git show -m --name-status b4eec3024a18bd502735d88c31891eea646d3356:at_Objects/AtResctrCase.cpp | grep F-41959
F-41959 の行はここで削除されました。
コミットb4eec3024a18bd502735d88c31891eea646d3356 マージ: 9a74a46 66cc3f1
$ git show -m --name-status **9a74a46a47e425e35bc73a532a374ab5e67ec478** | grep AtResctrCase.cpp
$ git show -m --name-status **66cc3f136c91c2fb7c71915a1dbd4fbf9facf761** | grep AtResctrCase.cpp
$ git show -m --name-status 50b5cfac734f3a4231e60144d6223d68412900b5 | grep AtResctrCase.cpp
M at_Objects/AtResctrCase.cpp
$ git show -m --name-status 50b5cfac734f3a4231e60144d6223d68412900b5:at_Objects/AtResctrCase.cpp | grep F-41959
//F-41959
上記のコミットは、行が最初に追加された場所です