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

Mic*_*ica 42 git merge branch

我正在使用Git来跟踪我的文档乳胶来源.我想让master分支中包含适合最终用户发布的文档,所以当有人需要时,我可以切换到master分支,编译并分发文档.

当手册需要重大更新时,我会创建新分支.但是,当手册获得批准后,它需要合并回主人手中.当从分支合并到master时,我想将一些命令传递给Git说:"忘记合并,只需使用分支中的文件覆盖master中的文件." 有没有办法做到这一点?具体来说,我想避免每次都打开合并工具.提前致谢.

Rob*_*ert 58

无视master,当你branch签出时:

git merge master --strategy=ours
Run Code Online (Sandbox Code Playgroud)

http://schacon.github.com/git/git-merge.html

正如"计算机语言学家"在这里评论的那样,即使它改变了新的独立文件,它也会"忽略'主人'中的所有内容".因此,如果你不是OP,并希望更安全的合并,而不是OP说"忘记合并",那么请使用"计算机语言学家"中的这个出色的安全命令,再加上他的评论,这样他就会获得信誉.

git merge -s recursive -X theirs branch
Run Code Online (Sandbox Code Playgroud)

  • 从分支'master',运行`git merge -s recursive -X他们的分支`将通过选择'branch'版本来解决所有冲突.使用-s将忽略"master"中的所有内容,即使它已更改为新的独立文件. (38认同)
  • 如果你在分支机构并且你'git merge master --strategy = ours`那么它会保持分支的变化.(OP想要什么)但是如果你在掌握并使用"我们的"那么它就是主人的.(相反) (5认同)
  • 从我对这个问题的阅读中,Mica希望将分支合并为master,将分支状态即`git merge branch`保持在master上,所以--strategy = our与他想要的相反 (5认同)
  • OP希望将合并定位到`master`,但@ Robert的回答目标是`branch` (4认同)
  • 这个答案让我很困惑.那个命令正好相反. (4认同)

Ala*_*ith 15

在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

我认为第二种方式可能是更好的发挥,但我还没有机会充分利用它.