我有两个分支:主人和实验.它们都是分开进化而且现在非常不同.现在我准备让实验分支我的主分支.
如果我试试
git checkout master
git merge experiment
Run Code Online (Sandbox Code Playgroud)
我得到了大量的错误.
在没有失去实验分支的所有历史的情况下,让实验分支成为主人的最简单方法是什么.
我已经创建了一个master分支的备份,就像这样的1.0版
git checkout master
git checkout -b release_1
Run Code Online (Sandbox Code Playgroud)
Mau*_*fer 21
假设这些是私有分支(即没有其他人正在处理它们),您可以设置master为experiment这样:
git checkout master
git reset --hard experiment
Run Code Online (Sandbox Code Playgroud)
如果这些是公共分支,你可能想要合并和解决冲突,正如Jefromi解释的那样.
Cas*_*bel 12
这里有一些可能性,具体取决于"替换"的含义.你几乎肯定采取正确的方法开始 - 合并通常是要走的路.你看到的"错误"是合并冲突,大概是.如果您确定知道,只要发生冲突,您希望使用实验分支中的版本,您可以:
# resolve conflicts by taking the version from experimental
# non-conflicting content is merged normally
git checkout master
git merge -Xtheirs experimental
Run Code Online (Sandbox Code Playgroud)
如果你想在实验中使用该版本的所有内容,而不仅仅是存在冲突的地方,那么有很多方法(实际上没有合并策略).最简单的:
# do the merge the other way around
git checkout experimental
git merge -s ours master
git checkout master
git merge experimental
# do the merge the right way
git checkout master
git merge --no-commit experimental # merge, but stop before committing
git checkout experimental . # check out content, but don't switch branch
git commit # commit the merge
Run Code Online (Sandbox Code Playgroud)
其他人建议的方式(reset --hard,branch -M)会起作用,但由于它们不会创建合并提交,因此您的主分支以非快速方式移动,可能会导致其他需要从此repo中获取的人感到头疼.一般来说,只有在未发布这些分支时,我才会说这是正确的答案.
| 归档时间: |
|
| 查看次数: |
7585 次 |
| 最近记录: |