簡體   English   中英

無法用dev分支覆蓋Git master分支

[英]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分支覆蓋我的主分支?

如果我可以保留我的主提交日志條目會很好

我會在你當前的主人那里創建一個新的分支來跟蹤所有的歷史記錄。

  1. git checkout master
  2. git branch old-master

我正在嘗試用我的dev分支替換我的主分支

要做到這一點,我只需要將您的主分支重置為您的開發分支。

  1. git checkout master
  2. git reset --hard dev

這實際上只是將master分支的頭部移動到dev分支的頭部。

這將使你的舊master歷史保持old-master而不會弄亂任何東西。 這也不會觸及您的dev分支。

暫無
暫無

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

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