[英]How do I 'merge' a git branch without actually merging it
聽起來像一個愚蠢的問題,所以讓我解釋一下:
我的iOS應用程序項目位於分支“ master”上。 我創建了一個名為“ iOS 7”的分支,並在該分支上完成了iOS 7升級的所有工作。 現在,我基本上希望'iOS 7'分支成為master分支,以便我返回到'master'上。 我嘗試合並,並且有太多沖突,解決這些沖突不值得。 我現在只關心'iOS 7'分支,其余的我都不關心。
顯而易見的解決方案是僅對.git目錄進行裝箱並從我在'iOS 7'所在的位置開始使用新的存儲庫,但我想知道git中是否可以執行此操作。 基本上,可以用某種方式說:“看,這個分支現在是事實 ,將它設為master分支。忽略'master'中當前存在的任何內容”
編輯:我應該補充一點,我是使用此存儲庫的唯一人,它僅在Mac上本地存在。 沒有遠程回購。
編輯2:根據我接受的答案,這個問題實際上根本不是關於合並,因為沒有任何東西被合並,這就是為什么我將“合並”放在引號中。 我之所以使用“合並”一詞,是因為這是在將分支中的更改帶回主服務器時通常使用的術語。 通常這將意味着實際的合並,我的問題是如何避免合並。 接受的答案可以完美地做到這一點(其他答案也可以)。
master
只是另一個分支名稱。 因此,您可以輕松地重命名分支:
git branch -m master master-old
git branch -m "iOS 7" master
您可以告訴Git使用ours
theirs
的策略選項(請參閱合並策略 )自動選擇合並的一側。 對於您的情況,如果您位於master
分支上並想合並iOS 7
分支,請執行以下操作:
git merge --strategy-option=theirs "iOS 7"
您所描述的內容與合並沒有任何關系。 您是唯一的開發人員,您只想移動分支,完全放棄其舊狀態? 只需刪除您的master
分支,然后在ios7
分支的開頭重新創建它ios7
。
# Make sure we're starting from the correct branch
$ git checkout ios7
# Delete the old 'master' pointer
$ git branch -d master
# Create a new 'master', pointing at the current commit
$ git checkout -b master
最后一條命令創建一個名為master
的新分支,該分支指向當前提交( ios7
的頭部),然后將其檢出。
如果您是分支master
:
git reset --hard 'iOS 7'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.