git log и git whatchanged, позволяющие дублировать коммиты

Журнал git и git whatchanged показывают 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», я нашел несколько промежуточных коммитов и проверил, был ли этот файл изменен в каком-либо коммите. в порядке от недавнего к старому. Нашел коммит, в котором была удалена строка. 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

Приведенный выше коммит — это место, где строки были изначально добавлены


person Senthil A Kumar    schedule 07.12.2011    source источник
comment
Вы уверены, что эти 2 строки расположены в одном и том же месте кода?   -  person BenC    schedule 07.12.2011
comment
Не совсем в тех же строках, но эти 2 коммита единственные, когда я делаю gitwhatchanged, я обновляю строки перед ним. он не должен показывать знак +, даже если он был перемещен на другую строку, верно?   -  person Senthil A Kumar    schedule 07.12.2011
comment
Я имею в виду, что у вас могут быть одни и те же строки несколько раз в разных местах кода. Вопрос в том, действительно ли два файла после первого коммита и после второго коммита идентичны?   -  person BenC    schedule 07.12.2011
comment
Вы недавно делали перебазирование/слияние?   -  person BenC    schedule 07.12.2011
comment
Я не уверен в этом, но получил больше информации из журнала git. Видел еще несколько коммитов, но ни один из них не касался этого файла, кроме коммита слияния, который был удален и выглядит странно.   -  person Senthil A Kumar    schedule 08.12.2011
comment
Слияние удалило строку? (такое может случиться, если был конфликт и вы решили его удалить)   -  person BenC    schedule 09.12.2011