我尝试了rebase
和merge
,但他们都引入了一些非常适合我解决的冲突。我的master
分支很老,我想用ready
分支中的文件覆盖它。
我有以下分支:
- 主人 - 准备好了
我想将ready
合并到master
,以便master
只是ready
的克隆。
我不想解决冲突,实际上,我希望覆盖所有文件而不合并。
注意:
我尝试删除本地master
并将ready
重命名为master
,但我无法将其推送到我在BitBucket托管的远程仓库,BitBucket不允许删除{{1分支。所以我被master
答案 0 :(得分:3)
@Kjuly有最好的选择..顺其自然。如果您决定保留文件的原始版本或新版本,还有另一种选择。
为此,git checkout命令中有--theirs和--ours选项。第一个选项保留您合并的文件的版本,第二个选项保留合并操作开始之前的版本。
git checkout --ours foo/bar.java
git add foo/bar.java
和
git checkout --theirs foo/bar.java
git add foo/bar.java
答案 1 :(得分:2)
如果您只想覆盖master
分支,只需从master
强行推送新克隆的ready
:
$ git checkout ready
$ git branch -D master // delete old master
$ git checkout -b master // create new master
$ git push -f origin master // force push the master br
建议:最好在强制覆盖之前备份旧主人,以防您需要在功能中引用它。