天天看點

git 沖突問題反思操作記錄事件反思git rebase -i結束語

上周五送出代碼沖突了一次,造成了代碼復原。并且短時間内開發環境在特定業務子產品報錯。于是,今天有空,趕緊好好補習下git相關知識。

操作記錄

由于之前工作中使用merge造成過代碼丢失,是以現在經常使用rebase合并代碼。這次也是一樣,習慣性的将開發分支使用git rebase -i hash 将開發的一系列commit整理成了一個,然後一并 rebase 到了develop分支。但是目前版本需求改動較大。這次rebase還是發生很多沖突。緊接着使用了git mergetool工具來解決沖突。但是由于檔案結構變更。盡管小心翼翼,逐行比對但還是造成了代碼丢失。

事件反思

通過事實回報,一度懷疑是自己的操作有問題。感覺最可能出錯的,隻能是逐行比時,不小心造成代碼誤删了。

直至今天,我在使用git rebase -i 再次合并多個commit時發現了問題。明明後送出的東西竟讓被git在rebase下前面的commit覆寫。于是仔細回想了下對git rebase -i 的操作流程。 從最後一個開始由pick轉變成squash的。之前也是這樣操作,那是不是之前也出現過這個問題,但沒被注意到呢。于是我決定改用順序從第二個開始squash這會反而是正确的。這就是是什麼原因?

git rebase -i

結束語