假设我通过git存储库与某人合作,并且有一个特定的文件,我永远不想接受任何外部更改.
有没有办法让我设置我的本地仓库,以便每当我拉动时不抱怨冲突的合并?我想在合并此文件时始终选择我的本地版本.
我有许多远程存储库,我想合并在一起.这些存储库中的一些子树对于远程控制器是唯一的(它们包含特定于主机的数据),其他子树包含在所有远程控制器中通用的数据(应该是).
基本上,我想做的是为每个遥控器运行"git pull".这将使远程主服务器的跟踪分支上的本地主分支快速转发到远程主服务器上已更改的特定于主机的文件,并且对公共文件不执行任何操作,因为它们不会更改.
公共文件中的更改(称为F,更改为F')应该不是问题,即使它最初只发生在一个远程上.git-merge将做正确的事情并在我的复合工作区中给我一个F'的副本,这就是我想要的.如果同一个公共文件在另一个遥控器上以不同的方式改变(称之为F"),问题就出现了.git-merge将给我一个F'和F"的组合,这不是我想要的.我想要的只是F".
当我使用ClearCase时,我们将其称为复制合并.合并的结果始终是贡献者的精确副本.这听起来很像"git merge -s theirs",但它不存在.
我想知道我是否可以通过"git-read-tree -m -trivial"来做一些事情来快速合并,然后用git-merge和一个自定义合并工具来简单地复制$ REMOTE文件到$ MERGED.但即便如此,我也看不出如何从合成F'和F中停止git-merge,如果合并是微不足道的话.
我已阅读链接是否有"他们的"版本的"git merge -s ours"?在这个网站上,Junio Hamano的帖子引用了解释为什么"git merge -s theirs"是一个坏主意,但对我来说情况并非如此.我确实重视旧的历史,但我需要跳出船并在发生事件时跟踪远程站点上的更改.本地站点上没有新工作.它只需要形成所有远程站点的组合,在更改时从最后一个轮询的远程站点获取最新的"公共"文件.
在此先感谢您提供给我的任何帮助.
我为客户端X创建了一个rails网站.我现在有一个客户端Y,他想要一个与客户端X完全相同的网站,但是有一个不同的皮肤.
我从clientXcode创建了一个git分支,并将其命名为clientYcode.然后,我对视图进行了所有更改,使其看起来与众不同,而lala,同一个网站具有不同的外观.
现在这里是我对git不了解的内容:我在视图,模型和控制器中对clientXcode进行了很多更改; 现在我想将这些更改合并到clientYcode中,排除任何视图更改.由于视图,模型和控制器在rails中都有自己的文件夹,我希望能够做到这样的事情:
git merge client_x_code 'app/controllers/*', 'app/models/*'
Run Code Online (Sandbox Code Playgroud)
问题1:使用git有可能吗?如果是这样,我该怎么做?
问题2:分支是制作项目副本的最佳解决方案吗?
这是我的第一个问题,我也是Git的新手.
背景:在我的约8位开发人员小组中,我应该是Git的版本控制大师.由于我没有很多Git经验,这很令人兴奋.我决定需要一个共享存储库,它将是生产代码的权威主数据库和开发代码的主要会合点.当我们为公司工作时,我们确实需要至少显示生产代码的授权来源.
我已经指示开发人员在从共享存储库中提取时进行pull-rebase,然后推送他们想要共享的提交.我们遇到了特定类型文件的问题.
其中一个文件,我目前认为是典型的问题,称为web.config.我们想要一个版本控制的主web.config供开发人员克隆,但是每个开发人员都可以对这个文件进行少量编辑,他们希望在本地保存但不共享.
问题是这样的:我如何告诉git 不考虑本地更改或提交此文件以进行变基和推送的相关性?Gitignore似乎没有解决问题,但也许是因为我把web.config放入.gitignore太晚了?
在一些简单的情况下,我们堆叠了本地更改,重新定位,推送和弹出堆栈,但这似乎并不是一直都有效.我还没有拿起这个模式.
关于pull --rebase的已发布文档倾向于处理更简单的情况.
或者我完全有错误的想法?我们在滥用Git吗?
Dougkiwi