[英]Git: Merge to master while automatically choosing to overwrite master files with branch
我正在使用Git来跟踪我的文档乳胶来源。 我想让master分支中包含适合最终用户发布的文档,所以当有人需要时,我可以切换到master分支,编译并分发文档。
当手册需要重大更新时,我会创建新分支。 但是,当手册获得批准后,它需要合并回主人手中。 当从分支合并到master时 ,我想将一些命令传递给Git说:“忘记合并,只需使用分支中的文件覆盖master中的文件。” 有没有办法做到这一点? 具体来说,我想避免每次都打开合并工具。 提前致谢。
要忽略master
,当你检查branch
时:
git merge master --strategy=ours
http://schacon.github.com/git/git-merge.html
正如“计算机语言学家”在这里评论的那样,即使它改变了新的独立文件,它也会“忽略'主人'中的所有内容”。 因此,如果你不是OP,并希望更安全的合并,而不是OP说“忘记合并”,那么请使用“计算机语言学家”中的这个出色的安全命令,加上他的评论,这样他就可以获得信誉。
git merge -s recursive -X theirs branch
在Git的1.7.1版本中,您可以使用“-Xtheirs”在分支本身中进行合并。
例如,如果从主分支开始,从master开始
git checkout -b editBranch
-- edit your files --
git add .
git commit -m "Updated the files"
git checkout master
git merge -Xtheirs editBranch
基于这篇文章 ,我看到的另一种方法就是对editBranch进行硬重置。 例如:
git checkout -b editBranch
-- edit your files --
git add .
git commit -m "Updated the files"
git checkout master
git reset --hard editBranch
我认为第二种方式可能是更好的发挥,但我还没有机会充分利用它。
我相信你可以用'我们'的合并策略做到这一点:
git checkout branch
git merge -s ours master
但这并不能完全符合您的要求:它会覆盖当前工作分支branch
的内容,您想要的是将相同的内容传递给master
。 你真正想要的是theirs
的合并策略,为此,我指出你在这个类似的问题上找到一种方法。 在实践中,它归结为将master
重置为指向branch
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.