繁体   English   中英

Git:合并到master,同时自动选择用分支覆盖主文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM