git log и git whatchanged, позволяющие дублировать коммиты - PullRequest
1 голос
/ 07 декабря 2011

Журнал git и git whatloaded показывают 2 коммита, но в обоих добавлены одинаковые строки, поэтому, где они были удалены в промежутке, чтобы они снова добавляли одинаковые изменения?

Я пробовал приведенную ниже команду, как это может быть2 коммитов с добавлением тех же 2 строк, когда между ними нет ни одного коммита, который показывает строки как удаленные.Как найти, что случилось с этим файлом, между этими 2 коммитами?

git log --stat --follow -p at_Objects / AtResctrCase.cpp

commit 914f8e87cb88e2923ed089a579d69cfa21ae0bc

at_Objects / AtResctrCase.cpp |2 ++

1 файл изменен, 2 вставки (+), 0 удалений (-)

 seller_bid_amount.clear();
 //F 27116
 auction_items.clear();
    +        //F-41959
    +        store_id.clear();

commit 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 ^ .. 914f8e87cb88e2923ed089cab068b6

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.Но почему он должен быть удален, если никакая другая фиксация между ними не изменила этот файл?Automerge убрал линию?если этот файл был удален в коммите слияния, почему он не отображается в "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 имеетздесь был удален.

commit b4eec3024a18bd502735d88c31891eea646d3356 Merge: 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

Вышеуказанный коммит находится где строкиизначально были добавлены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...