[英]Git Rebase deleted current files
我一直在努力使用 git rebase 並且不確定它是如何工作的。 所以,我所做的是以下步驟:
git checkout main
git pull origin main
git checkout my-branch
git rebase origin/main
然后我在控制台中收到一些消息說我需要在繼續之前解決沖突。 問題是當我打開“紅色”文件時,當前的更改或傳入的更改都不是我在變基之前剛剛修改的代碼。
<<<<<<< HEAD
.MuiSwitch-root .MuiSwitch-switchBase.Mui-checked {
=======
/* .MuiSwitch-root .MuiSwitch-switchBase.Mui-checked {
>>>>>>> cbfe089 (built skeleton for Settings Page)
color: var(--primary-clr) !important;
}
.MuiSwitch-switchBase.Mui-checked .MuiSwitch-track {
background-color: black !important;
opacity: 1 !important;
background: linear-gradient(#f4f4f4, #e9e9e9) !important;
<<<<<<< HEAD
}
=======
} */
>>>>>>> cbfe089 (built skeleton for Settings Page)
我對整個文件進行了更改,這些都不是我當前的代碼。 另外,我注意到我添加的一些文件也無處可尋。 我不知道發生了什么。
我認為我不能幫助您解決沖突本身,但我可以解釋 rebase 的作用,它可能會幫助您下次更好地處理它。 假設你的 git 歷史狀態是這樣的:
a <- b <- c <- d <- e <- f <- g
^main ^my-branch (HEAD)
你一直在你的分支上工作,所以你領先於 main 幾個提交。 您最近的工作是提交 e、f 和 g。 然后你結帳 main,將 HEAD 設置為它。
a <- b <- c <- d <- e <- f <- g
^main (HEAD) ^my-branch
你拉起源/主要。 結果是其他人推送了更新,提交了 h、i 和 j。
a <- b <- c <- d <- e <- f <- g
^ ^my-branch
|
h <- i <- j
^main (HEAD)
當您檢查 my-branch 並運行git rebase origin/main
時,它需要提交 e、f 和 g 並將它們卡在 j 的末尾:
a <- b <- c <- d
^
|
h <- i <- j <- e <- f <- g
^main ^my-branch (HEAD)
它通過在 j 上一次應用一個 e/f/g 來做到這一點。 問題是如果 h/i/j 修改了與 e/f/g 相同的文件,那么您必須手動解決沖突。 這就是為什么你會看到你不熟悉的代碼。 因為你沒有寫 h/i/j,但它仍然會出現在沖突中。
不幸的是,我無法幫助解決丟失的文件,這聽起來像是在解決沖突時您可能不小心刪除了自己的更改(e/f/g 中的內容)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.