簡體   English   中英

Git Rebase 刪除了當前文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM