Questions tagged «merge»

合并是用于组合两个或更多相关数据集的通用术语。当协调对版本控制的文件集合进行的多个更改时,它通常与版本控制系统关联。合并多个数据集是此标记的另一种用法。


4
什么时候使用不同的git merge策略?
在git-merge的手册页中,可以使用多种合并策略。 resolve-使用三路合并算法只能解析两个头(即当前分支和您从中拉出的另一个分支)。它试图仔细检测纵横交错的歧义,并且通常被认为是安全且快速的。 递归 -这只能使用3向合并算法解析两个磁头。当可以用于三向合并的公共祖先不止一个时,它将创建公共祖先的合并树,并将其用作三向合并的参考树。据报道,通过对来自Linux 2.6内核开发历史记录的实际合并提交进行的测试,可以减少合并冲突,而不会引起错误合并。此外,这可以检测和处理涉及重命名的合并。当拉或合并一个分支时,这是默认的合并策略。 章鱼 -可以解决两个以上的问题,但拒绝执行需要手动解析的复杂合并。它主要用于将主题分支头捆绑在一起。当拉或合并多个分支时,这是默认的合并策略。 我们的 -可以解析任意数量的头,但是合并的结果始终是当前分支头。它旨在取代侧支的旧开发历史。 子树 -这是一种修改的递归策略。合并树A和B时,如果B对应于A的子树,则首先调整B以匹配A的树结构,而不是读取相同级别的树。对公共祖先树也进行了此调整。 什么时候应该指定不同于默认值的内容?每个方案最适合什么情况?
429 git  merge  git-merge 


5
使用git在整个文件上“接受他们的”或“接受我的”的简单工具
我不需要视觉合并工具,也不想查看冲突的文件并手动选择HEAD(我的)和导入的更改(它们的)之间。大多数时候,我要么想要他们的所有更改,要么想要我的全部。通常,这是因为我的更改使它产生了新的变化,并且很快又回到了我的视野,但是在不同的地方可能会稍作修改。 是否有命令行工具可以摆脱冲突标记,并根据我的选择选择一种或另一种方式?或一组git命令,我可以给自己起别名以执行每个命令。 # accept mine alias am="some_sequence;of;commands" alias at="some_other_sequence;of;commands" 这样做很烦人。对于“接受我的”,我尝试过: randy@sabotage ~/linus $ git merge test-branch Auto-merging Makefile CONFLICT (content): Merge conflict in Makefile Automatic merge failed; fix conflicts and then commit the result. randy@sabotage ~/linus $ git checkout Makefile error: path 'Makefile' is unmerged andy@sabotage ~/linus $ git reset …
399 git  merge 



4
哪些Git分支模型适合您?
我们公司目前正在使用简单的主干/发行版/修补程序分支模型,并希望就哪种分支模型最适合您的公司或开发过程提出建议。 工作流程/分支模型 以下是我所见过的三个主要描述,但它们在某种程度上相互矛盾,或者不足以解决我们遇到的后续问题(如下所述)。因此,到目前为止我们的团队默认的解决方案不是那么好。你做得更好吗? gitworkflows(7)手册页 (nvie)成功的Git分支模型 (reinh)敏捷团队的Git工作流程 合并与重新计算(纠结与顺序历史记录) 还是应该pull --rebase等待合并回到主线,直到任务完成?就个人而言,我倾向于合并,因为这保留了任务开始和完成的基础的可视化插图,我甚至更喜欢merge --no-ff此目的。但是,它还有其他缺点。另外,许多人还没有意识到合并的有用特性-它不是可交换的(将主题分支合并到master并不意味着将master合并到主题分支)。 我正在寻找自然的工作流程 有时会发生错误,因为我们的过程无法使用简单的规则捕获特定的情况。例如,早期版本所需的修复程序当然应该基于足够的下游,以便可以将上游合并到所有必要的分支中(这些术语的用法是否足够清楚?)。但是,碰巧的是,在开发人员意识到应该将修补程序放置在更下游之前,将修补程序放入了母版中,如果该修补程序已经被推送(甚至更糟,已合并或基于此内容),那么剩下的选择就是挑剔的选择,其相关的危险。您使用什么样的简单规则?这也包括一个主题分支的尴尬,它必然排除其他主题分支(假设它们是从同一基准分支出来的)。开发人员不想完成一项功能就可以开始另一种功能,就像他们刚刚编写的代码不再存在一样 如何避免造成合并冲突(由于选择问题)? 建立合并冲突的肯定方法是在分支之间进行选择,它们再也无法合并了吗?是否可以在任一分支的还原中应用相同的提交(如何执行此操作?)可能会解决这种情况?这是我不敢推动基于合并的工作流的原因之一。 如何分解成局部分支? 我们意识到,从主题分支组装完成的集成会很棒,但是我们开发人员的工作通常没有明确定义(有时像“四处寻找”一样简单),并且如果某些代码已经进入“杂项”主题,根据上面的问题,它不能再次带出那里吗?您如何定义/批准/毕业/发布主题分支? 适当的程序,例如代码检查和毕业,当然会很可爱。 但是我们根本无法解决问题,有任何建议吗?整合分支,插图? 以下是相关问题的列表: 有哪些好的策略可允许已部署的应用程序可修复。 内部开发使用Git的工作流程说明 用于企业Linux内核开发的Git工作流程 您如何维护开发代码和生产代码?(感谢此 PDF!) git发布管理 Git Cherry-pick vs合并工作流程 如何挑选多个提交 如何使用git-merge合并选择性文件? 如何挑选一系列提交并合并到另一个分支 ReinH Git工作流程 进行修改的git工作流,您将永远不会回到原点 樱桃挑选合并 适用于OS和私有代码的正确Git工作流程? 用Git维护项目 为什么Git不能使用修改后的父/母合并文件更改。 Git分支/重新建立良好实践 什么时候“ git pull --rebase”会惹上麻烦? 大型团队如何使用DVCS? 还请查看Plastic SCM在任务驱动开发方面写的内容,如果您不是选择Plastic,请研究nvie的分支模型及其支持脚本。


2
熊猫合并101
如何执行与熊猫(LEFT| RIGHT| FULL)(INNER| OUTER)的联接? 合并后如何为缺失的行添加NaN? 合并后如何去除NaN? 我可以合并索引吗? 与大熊猫交叉交往? 如何合并多个DataFrame? merge?join?concat?update?WHO?什么?为什么?! ... 和更多。我已经看到这些重复出现的问题,询问有关熊猫合并功能的各个方面。如今,有关合并及其各种用例的大多数信息都分散在数十个措辞不好,无法搜索的帖子中。这里的目的是整理后代的一些更重要的观点。 本QnA是下一章有关大熊猫习语的有用的用户指南中的下一部分(请参阅有关透视的这篇文章和有关串联的这篇文章,我将在以后进行探讨)。 请注意,本文并非旨在代替文档,因此也请阅读!一些示例是从那里获取的。
362 python  pandas  join  merge 

12
为什么在Subversion中出现树冲突?
我的主干上有一个功能分支,并且正在定期将主干中的更改合并到我的分支中,并且一切正常。今天,我去将分支合并回主干,创建分支后添加到主干的任何文件都标记为“树冲突”。有没有办法避免将来发生这种情况? 我认为这些标记没有正确标记。
353 svn  merge  tree-conflict 

15
以下未跟踪的工作树文件将被合并覆盖,但我不在乎
在我的分支上,我在.gitignore中有一些文件 在不同的分支上,这些文件不是。 我想将另一个分支合并到我的分支中,并且我不在乎那些文件是否不再被忽略。 不幸的是我得到这个: 以下未跟踪的工作树文件将被合并覆盖 我如何修改我的pull命令以覆盖这些文件,而不必自己查找,移动或删除这些文件?

3
合并后如何处理分支
我有两个分支:master和branch1。我刚刚合并branch1回去,master并完成了该分支。我应该删除它还是让它闲逛?删除它会导致数据丢失吗?
341 git  merge  branch 

7
git中“我们的”和“他们的”的确切含义是什么?
这听起来像是一个问题的基本知识,但是我一直在寻找答案,现在我比以前更加困惑。 将我的分支合并到另一个分支时,git中的“我们的”和“他们的”是什么意思?两个分支都是“我们的”。 在合并冲突中,“我们的”是否总是显示两个版本中的较高者? “我们的”是否总是指合并开始时HEAD指向的分支?如果是这样,那为什么不使用诸如“当前分支”之类的清晰所有格代词,而不是使用指称性模棱两可的“我们”之类的所有格代词(因为这两个分支在技术上都是我们的)? 还是只使用分支名称(而不是说“我们的”,而要说“本地主人的”等)? 我最困惑的部分是,如果我在特定分支的.gitattributes文件中指定。可以说在测试分支中,我有以下.gitattributes文件: config.xml merge=ours 现在我结帐,将HEAD指向master,然后合并到test中。既然master是我们的,并且test的.gitattributes没有签出,它甚至会起作用吗?如果确实有效果,那么既然主人现在是我们的,那将会发生什么?
323 git  merge 

3
Git Cherry-pick vs合并工作流程
假设我是仓库的维护者,并且想从贡献者那里获取更改,那么可能有一些工作流程: 我cherry-pick每个人都从远程提交(按顺序)。在这种情况下,git将提交记录为与远程分支无关。 我merge分支,拉动所有的变化,并增加了新的“冲突”提交(如果需要)。 我merge每个人都从远程分支分别提交(再次按顺序提交),从而允许为每个提交记录冲突,而不是将所有冲突归为一个组。 为了完整起见,您可以做一个rebase(与cherry-pick选项相同?),但是我的理解是,这可能会使贡献者感到困惑。也许消除了选项1。 在2和3的情况下,git都记录提交的分支历史,这与1不同。 使用cherry-pick或merge描述的方法之间的优缺点是什么?我的理解是方法2是规范,但是我觉得用单个“冲突”合并来解决大型提交并不是最干净的解决方案。
302 git  merge  cherry-pick 

8
如何将列表合并为元组列表?
实现以下目标的Python方法是什么? # Original lists: list_a = [1, 2, 3, 4] list_b = [5, 6, 7, 8] # List of tuples from 'list_a' and 'list_b': list_c = [(1,5), (2,6), (3,7), (4,8)] 的每个成员list_c都是一个元组,其第一个成员是from list_a,第二个成员是from list_b。
297 python  list  merge  tuples 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.