我认为这是一种非常常见的情况:
现在,我希望能够更新开发分支,以便它反映最新的开发版本,但同时又能够保留我的更改。
如何实现这一目标?
我做了以下测试:
如果我将开发分支合并到 mychanges 一个
,也会报告冲突谢谢!
答案 0 :(得分:2)
现在主人有一个没有添加行的版本,mychanges分支有它,但是如果我尝试将mychanges合并到master,git说'已经是最新的'。
这是因为分支mychanges
位于后面的master
分支。也就是说,master
包含 mychanges
中发生的所有更改。
如果我将开发分支合并到mychanges
,也会报告冲突
在合并两个不同的分支时发生冲突是正常的;它只是意味着两个分支在它们中有不同的,相互冲突的变化,并且合并不能自动完成。我猜你已经编辑了development
分支上的文件,如果你想保留分支开发的更改,git
无法解决问题或 mychanges 。
现在我想做的就是能够更新开发分支,以便它反映最新的开发版本,但同时能够保留我的更改。
当git
无法自动合并时(即,无法确定要保留的文件的哪些更改以及合并中要丢弃的文件),您可以自己选择更改,然后重新合并分支机构。这使您可以选择所需的更改;如果您想要来自development
分支的更改,您可以保留它们。但是,如果您更改了development
上已更改的相同的代码行,则可能需要保留这些代码。
您应该阅读progit book,特别是chapter three,它将教您分支机构,并在第3-6章rebasing
您的更改development
来自{{{{{{{ 1}}。
该进度书是使用git
的重要信息来源,它可能会回答您的一些问题。
答案 1 :(得分:0)
合并后,嗯,你合并了它。
如果您在合并后进行提交(在主服务器上),尝试再次合并将会说已经是最新的。这是合并的重点。
如果您想在合并后返回上一个州,则可以执行git reset --hard ORIG_HEAD
。现在,如果您再次尝试合并,则会再次合并。
进行合并后,更改将在分支中进行,无需“继续更新”。但是如果你改变你合并的分支,以一种从你的合并中删除东西的方式,你就不能期望再次合并并把它带回来。
您可以继续使用master重新定义mychanges,以便mychanges始终基于master的HEAD,然后在需要时最终将其合并到master。