我正在使用Git来跟踪我的文档LaTeX源代码。我希望将主分支保留为适合最终用户发布的文档,因此当有人需要查找某些东西时,我可以切换到主分支,编译并交出文档。
当手册需要进行重大更新时,我会创建新分支。但是,当手册得到批准后,它需要合并回主分支。在从branch合并到master时,我想向Git传递一些命令,以便说:“忘记合并,只需使用branch中的文件覆盖master中的文件。” 有没有办法做到这一点?具体而言,我想避免每次都打开合并工具。提前感谢。
我正在使用Git来跟踪我的文档LaTeX源代码。我希望将主分支保留为适合最终用户发布的文档,因此当有人需要查找某些东西时,我可以切换到主分支,编译并交出文档。
当手册需要进行重大更新时,我会创建新分支。但是,当手册得到批准后,它需要合并回主分支。在从branch合并到master时,我想向Git传递一些命令,以便说:“忘记合并,只需使用branch中的文件覆盖master中的文件。” 有没有办法做到这一点?具体而言,我想避免每次都打开合并工具。提前感谢。
如果你在 branch
分支上,想要忽略 master
分支,则需执行以下操作:
git merge master --strategy=ours
http://schacon.github.com/git/git-merge.html
如“计算机语言学家”Lilith River所述,这将“忽略所有来自'master'的修改,即使它有对新的、独立的文件的更改”。因此,如果你不是OP并且想要一个更安全的合并而不是像OP所说的“忘记合并”,那么请使用来自Lilith River的这个极好的安全命令,并投票支持他的评论以便他获得荣誉。
git merge -s recursive -X theirs <branch>
git merge master --strategy=ours
,那么它会保留分支的更改。(OP想要的结果) 但是如果你在主分支中使用 "ours",则它将保留主分支的更改。(相反的结果) - Robertgit merge branch
到主分支上,因此--strategy=ours与他想要的相反。 - Arne Claassengit merge -s recursive -X theirs branch
将通过选择“branch”版本来解决所有冲突。使用-s ours将忽略来自'master'的所有内容,即使它对新的独立文件进行了更改。 - Lilith Rivermaster
分支,但@Robert的答案针对的是其他分支。 - S Bgit checkout -b editBranch
-- 编辑你的文件 --
git add .
git commit -m "更新文件"
git checkout master
git merge -Xtheirs editBranch
git checkout -b editBranch
-- 编辑你的文件 --
git add .
git commit -m "更新文件"
git checkout master
git reset --hard editBranch
git checkout branch
git merge -s ours master
branch
的内容,而您想要的是将相同的内容放到master
上。您真正需要的是一种合并策略theirs
,我会向您推荐这个类似的问题来解决它。实际上,它归结为将master
重置为指向branch
。