git:如何自动解决删除/修改冲突?

时间:2012-06-08 04:58:35

标签: git conflict

我按照以下方式组织了我的工作流程:

master分支用于开发,包含源代码和一些实用程序脚本。

发布分支是分发的,包含可执行文件和一些其他文件。

当我第一次创建发布分支时,我从中删除了所有源代码,并添加了已编译的可执行文件。当我想要下一个版本时,我会

git checkout release

git merge --no-ff -Xours master

即使我使用-Xours选项,每个更改的源文件都会导致删除/修改冲突。我必须手动删除所有冲突的文件,然后进行提交。有没有办法自动解决此冲突,强制删除的文件保持删除?

3 个答案:

答案 0 :(得分:1)

您正在以完全不同的方式使用Git和Source Control Management。我并没有说错,但你应该考虑用git repo重新思考你想要实现的目标。

在一般实践中,release分支也应该包含代码。而且您始终从release分支构建生产可执行文件。然后将它们移到其他地方。

那就是说,如果你想保留可执行文件的版本。创建另一个git repo以保持它们。这样,您可以更轻松地维护可执行文件。

如果您正在使用maven / java,那么我将推荐Maven Repo,其唯一目的是管理构建的工件。

答案 1 :(得分:1)

不要使用相同的存储库来存储从代码生成的人工制品。你会膨胀你的历史,并使定期开发的速度变慢。最终你将不得不放弃这种方法,因为新的克隆将花费太长时间。标准化人工制品拉链的命名约定并通过其他方式运送它们。它可能是另一个git repo,但它不能是你处理代码的那个。如果您愿意,可以通过子模块在2个回购之间建立链接。

答案 2 :(得分:0)

当您从存储库中删除某些文件并提交一些更改时,您需要使用-a选项。广告文档说:

-a, --all
   Tell the command to automatically stage files that have been
   modified and deleted, but new files you have not told git about are
   not affected.

从清除的文件中清除我的所有存储库。当我从其他分支合并时,我没有冲突。我不是害羞这会帮助你。我希望是的。