PTT推薦

[問卦] 同個 commit 不同 commit hash 之謎

看板Gossiping標題[問卦] 同個 commit 不同 commit hash 之謎作者
dces4212
()
時間推噓16 推:18 噓:2 →:22

如題,沒在用 Git 請左轉

剛剛在兩個 remote 上面看同一條 commit,發現它倆有不同 commit hash

我知道如果有 rebase 過的話 commit hash 會不同

但除了 rebase,還有其他原因會讓 commit hash 有變化嘛?

我很好奇!

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.100.24 (臺灣)
PTT 網址

SSglamr 11/10 17:01滾回碼農板

NDark 11/10 17:02cherry pick 被視為不同上傳

answer012103 11/10 17:02amend

感謝兩位!

※ 編輯: dces4212 (114.37.100.24 臺灣), 11/10/2022 17:03:19

wemee 11/10 17:03git pull 另一個remote下來看看有沒有衝突

chan15 11/10 17:03你不會 reflog 看發生什麼事喔

lawstone 11/10 17:03我看起來像會這玩意兒的嗎?

konanno1 11/10 17:03不能去問同事嗎?同學排擊你嗎?

fertalizer 11/10 17:06cherry pick

fertalizer 11/10 17:08rebase 要看你是在哪條 branch rebas

fertalizer 11/10 17:08e

fertalizer 11/10 17:12如果搞砸的話可以用reflog看操作紀錄

fertalizer 11/10 17:12然後再reset到你要的

abc0922001 11/10 17:14Amend Commit 阿

fertalizer 11/10 17:14回到題目 因為你的commit object去指

fertalizer 11/10 17:14向前一個commit object 會計算SHA-1

fertalizer 11/10 17:14

fertalizer 11/10 17:15你用rebase後讓他指的位置變了 所以

fertalizer 11/10 17:15要重新計算SHA-1值

fertalizer 11/10 17:16這時候從remote pull下來肯定衝突

fertalizer 11/10 17:17所以才說rebase分支要選對

我當時是要把新分支推到另個 remote 上的時候發現這件事的 看來是因為更早的 commit 接得起來所以沒出事?

wemee 11/10 17:21fatal: refusing to merge unrelated histo

acgotaku 11/10 17:22你一定是用ammend, 用reflog 抓回遠端

acgotaku 11/10 17:23的hash 看你要還原還是要重新pick

t81511270 11/10 17:24聽起來 cherry pick

WWIII 11/10 17:37臭宅滾 這邊是政治版

vi000246 11/10 17:38我怎麼會知道

fertalizer 11/10 17:45根據原po敘述 那兩個remote各自前一

fertalizer 11/10 17:45個commit 應該不同 才有hash值不同問

fertalizer 11/10 17:45

是的,前一個 commit 不一樣

s942816 11/10 18:09一堆亂講是怎樣

leoloveivy 11/10 18:16不同remote 說個78毛阿

Lamigirls48 11/10 18:57reset阿 傻傻的

afu4869 11/10 19:17除非用merge的 不然cherry-pick, amend,

afu4869 11/10 19:17rebase都會造成commid id被更動

afu4869 11/10 19:18可能要看一下兩者git commit的時間點

afu4869 11/10 19:20估計其中一個是cherry-pick

感謝大家熱心回答~ <3

※ 編輯: dces4212 (114.37.100.24 臺灣), 11/10/2022 20:24:37

fertalizer 11/11 01:28有個解衝突方法 本地開新branch 然後

fertalizer 11/11 01:28pull遠端 然後再把你改的cherry pick

fertalizer 11/11 01:28 到剛剛那個分支 解衝突再push上去。

fertalizer 11/11 01:28畢竟已經有人推code上去也沒辦法動遠

fertalizer 11/11 01:28端了

fertalizer 11/11 01:29當然你有膽force push也行....XD