1

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

上面的提交是最初添加行的地方

4

0 回答 0