2017-09-06 38 views
1

所以我想弄清楚一個奇怪的問題,提交進行,合併到我們的主分支,但隨後在提交代碼捆綁對此承諾似乎只是消失。提交散列是4516ce019github提交仍然在樹上,以及我的本地git分支。從git的日誌摘錄在主分支:提交是在git樹,但似乎並沒有應用於代碼

commit 02659934ce32a4e700e1a7116685933e40a58b7f 
Author: Jordan Earls <[email protected]> 
Date: Thu Jun 29 18:50:22 2017 -0400 

    Add RPC commands gethexaddress and fromhexaddress 

    These RPC commands can be used to convert to and from base58 addressses 
    to hex addresses as used in smart contracts 

commit 2c15f54789ab4f4e6d3b735aa6849111b5c9299d 
Merge: 14c08352c 4516ce019 
Author: qtum-neil <[email protected]> 
Date: Wed Jun 28 22:52:20 2017 +0000 

    Merge pull request #213 from qtumproject/earlz/add-block-author 

    Change block author to be 2nd vout/2nd tx for PoS 

如果你看一下git blame上作出承諾,事情似乎正確,則是存在的。但是,在主分支上的後續提交與完全不同的git blame好像提交不存在一樣。 (稱代碼在5個月前修改,而不是2個月前)。

究竟發生了什麼?我有一種感覺,這是一個合併衝突不好,但即使是最近的合併和/或混帳也會出現這種情況。我無法重現這一點,並且在此次提交之後我們從未強迫推送到這個分支(之前我們已經設置過)。

有沒有人有任何指導如何這是可能的,以及如何精確地查明事情出錯的地方?此問題在我們的代碼庫中引入了一個小的安全漏洞,因此瞭解爲什麼發生這種情況很重要;當然修復的方法是隻是做一個櫻桃選擇拉回這個承諾回來。

編輯:使用git fsck --unreachable --no-reflog顯示沒有孤立的提交,所以我只有一個合併留下提交背後的預感似乎並非如此

+0

0265的父項是a633 – ninjalj

回答

1

它看起來像我2c15f54(您的原始公關)和ed22562(您提交鏈接爲「以下提交在主」上)實際上不在同一分支上。這兩個提交沒有合併在一起,直到e4998dc,很明顯,您的原始更改已被合併刪除。不過,我不清楚爲什麼會發生這種情況。我使用git log --all --color --graph --pretty='format:%C(red)%h %C(yellow)%d%C(reset) %s %C(green)%an, %ad%C(reset)' --date=short以顯示此圖的方式查看圖。

+1

值得一提的是,我認爲GitHub試圖以一種漂亮,簡單,令人愉悅的方式渲染提交歷史記錄會導致漂亮的謊言。換句話說,你不能*使用* GitHub來弄清楚發生了什麼;你需要真正的命令行Git,就像在這個答案中一樣。 – torek

相關問題