[英]Unable to overwrite Git master branch with dev branch
我有Git master和dev分支。 在嘗試將我的dev分支合並到我的主分支的過程中,我無意中做了一些錯誤,現在看來master已經搞砸了。 我知道我的開發分支是好的,我不想發生任何事情,所以我試圖用我的開發分支替換我的主分支。 如果我能保留我的主提交日志條目會很好,但只要我能保留dev中的所有內容,我就可以丟失它們。 我正在嘗試實現此Stackoverflow問題中描述的解決方案,但它們無法正常工作。 這是我做的:
$ git checkout dev
$ git branch -f master dev
$ git checkout master
Switched to branch 'master'
Your branch is behind 'origin/master' by 4 commits and can be fast-forward.
(use "git pull" to update your local branch)
如果我然后執行“git pull”,主分支不再包含dev的更改,Git告訴我我的分支與'origin / master'是最新的。 現在我該怎么做? 如何用dev覆蓋這個大師? Master不包含dev更改。 如果我現在做“git merge --no-ff dev”,Git說“已經是最新的”。
我還嘗試通過執行以下操作來實現第二個答案:
$ git checkout dev
$ git merge -s ours --no-commit master
Already up-to-date.
% git commit
On branch dev
Your branch is up-to-date with 'origin/dev'.
nothing to commit, working tree clean
$ git checkout master
Your branch is behind 'origin/master' by 4 commits and can be fast-forward.
(use "git pull" to update your local branch)
正如您所看到的,當我嘗試實現第一個解決方案時,這會讓我回到原來的位置。 我完全糊塗了。 如何用我的dev分支覆蓋我的主分支?
如果我可以保留我的主提交日志條目會很好
我會在你當前的主人那里創建一個新的分支來跟蹤所有的歷史記錄。
git checkout master
git branch old-master
我正在嘗試用我的dev分支替換我的主分支
要做到這一點,我只需要將您的主分支重置為您的開發分支。
git checkout master
git reset --hard dev
這實際上只是將master
分支的頭部移動到dev
分支的頭部。
這將使你的舊master
歷史保持old-master
而不會弄亂任何東西。 這也不會觸及您的dev
分支。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.