簡體   English   中英

Git用沖突的分支重新設置

[英]Git rebase with conflicting branches

我的git存儲庫中目前存在以下情況

A - B - C - D - E - F (master)
     \- D' - E' - G (branch)

我有時從D分支出來,但似乎有人回過頭來引入了C提交,然后我完全不同步。 現在,我想將我在G(branch)更改重新設置為F(master) 也就是說,我想擁有以下內容

A - B - C - D - E - F(master)
                     \- G(branch)

換句話說,完全丟棄D'E' 這是怎么做的? 我嘗試使用git rebase但遇到了許多沖突,不斷要求我合並D '和E '中的更改。

要基於master ,僅進行一次提交(即G ):

git rebase --onto master HEAD~1

HEAD~1指定“上游”,覆蓋使用的任何默認上游。 git rebase將僅重播不在上游的當前分支中的提交。 這樣就隔離了一次提交。 --onto指定在選擇提交之前硬重置到的位置。

說到摘櫻桃,我們也可以手動執行等效步驟:

# drop all work, and just become equivalent to master
git reset --hard master

# pick just G out of the dropped work, bringing it into master
git cherry-pick <sha-of-G>

第三種方法是進行交互式變基:

git rebase -i

然后編輯掉不需要的提交,只保留G。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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