[英]Merge or Rebase?
這是我目前的提交。
commit1 - commit 2 - commit3 - commit4 - cmmit5 (my-app branch)
我檢查了commit1
並進行了更改
git checkout <commi1's SHA>
// made some changes
git add . && git commit -m "commit prime 1"
// made other changes
git add . && git commit -m "commit prime 2"
現在,我想在my-app
分支的頂部合並(?)或rebase(?)。
我不關心提交5,我只是想將我當前更改的commit1
放到my-app分支的頂部(不合並但是重寫!)。 所以輸出將低於
commit1 - commit 2 - commit3 - commit4 - cmmit5 - commit prime 1 - commit prime2" (my-app branch)
commit 5
並commit prime 2
。 這是我當前的終端提示:
jbaaa at jo's computer ~/directory on (HEAD detached from 8a36f955fc)*
git狀態輸出:
HEAD detached from 8a36f955fc
假設commit5是
'12345'
''
''
commit1是
'1'
''
''
commit prime2是
'1'
'prime1 and prime2'
最終結果必須是
'1'
'prime1 and prime2'
如果我們merge
,我們會得到這個結果。 我們如何避免它?
'12345'
'prime1 and prime2'
您處於所謂的“HEAD detached”狀態,這意味着您不在分支機構工作。 首先,將您當前的工作分成一個分支。
git checkout -b my-feature
如果要刪除提交5,請將您的工作重新設置為提交4。
git rebase <commit4's SHA>
你得到的將是這樣的:
c1 - c2 - c3 - c4 - c5 (my-app)
\
p1 - p2 (my-feature)
由於您不關心提交5,請將my-app重置為my-feature(p2)。
git checkout my-app
git reset --hard my-feature
最后結果:
c5 # no branch
/
c1 - c2 - c3 - c4 - p1 - p2 (my-app, my-feature)
我害怕使用rebase
如果您不確定變基,請在開始變基之前保持當前分支不變並創建新分支,例如:
git checkout -b my-feature-rebased
最后結果:
c5 # no branch
/
c1 - c2 - c3 - c4 - p1 - p2 (my-app, my-feature-rebased)
\
p1 - p2 (my-feature) # backup
你可以使用git rest --hard <commit1 hash>
將你的頭移到commit1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.