当使用主题分支"B"合并到"A"时git merge,我会遇到一些冲突.我知道使用"B"中的版本可以解决所有冲突.
我知道git merge -s ours.但我想要的是类似的东西git merge -s theirs.
它为什么不存在?在与现有git命令冲突合并后,如何获得相同的结果?(git checkout来自B的每个未合并文件)
更新:从分支A(合并提交点到树的B版本)丢弃任何东西的"解决方案"不是我想要的.
我想推送我的本地文件,并将它们放在远程仓库上,而不必处理合并冲突.我只是希望我的本地版本优先于远程版本.
我怎么能用Git做到这一点?
我有两个分支--A和B. B是从A创建的.
两个分支机构的工作同时进行.分支A上的工作很糟糕(导致非工作版本),而分支B上的工作很好.在此期间,分支B有时合并到分支A(但不是相反).
现在我想让分支A与分支B相同.我不能使用git revert,因为我需要恢复过多的提交 - 我只想恢复在分支A上完成的提交但不是因为合并分支B的结果.
我找到的解决方案是将分支B克隆到另一个文件夹,从分支A的工作文件夹中删除所有文件,从temp分支B文件夹中复制文件并添加所有未跟踪的文件.
是否有一个git命令做同样的事情?我错过了一些git revert开关?
我已经检查了各种问题.第一个提供了一个巨大的问题和答案(相关的?不确定),第二个提供了错误的答案作为最佳答案.
我有一个叫做的分支great-use-this.我有另一个叫做的分支master.我想合并great-use-this到master中,并避免自动合并冲突.
什么是做到这一点最简单和最简单的方法是什么?
注意:我实际上已经想到了这一点(使用第三个分支ours,但是无论如何这对SO来说会很好.
有没有办法指定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"是一个坏主意,但对我来说情况并非如此.我确实重视旧的历史,但我需要跳出船并在发生事件时跟踪远程站点上的更改.本地站点上没有新工作.它只需要形成所有远程站点的组合,在更改时从最后一个轮询的远程站点获取最新的"公共"文件.
在此先感谢您提供给我的任何帮助.
我想将一个分支中的所有更改推送到另一个分支(现有分支)而不进行合并.
例如,考虑两个分支branch1到branch2.branch1和branch2分别跟踪origin/branch1和origin/branch2.
Branch1具有提交A,B,C,D,E,F Branch2具有提交A,B,D,F
我想让Branch2与branch1完全一样.采摘和合并樱桃会产生冲突,我不想花时间解决,因为我所要做的就是盲目地将branch1复制到branch2.
我能够做到这一点
git checkout branch1 # Moves to branch1
git push origin :branch2 # Deletes remote branch origin/branch2
git branch -d branch2 # Deletes the local copy of this branch
git pull
git push origin HEAD:branch2 # Creates new branch in remote repository from the HEAD at local branch branch1
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法通过合并命令中的一些--force选项来执行此操作.我不想每次都删除分支只是为了创建一个具有相同名称的新分支.
谢谢
我维持一个回购的分支.
那个一直跟踪二进制文件(这是一个sqlite3文件)的repo.
每次我从该repo中提取时,由于该二进制文件,我都会遇到合并冲突.
解决这种合并冲突的正确方法是什么?
在git中管理二进制文件(如sqlite3*.db文件)的正确方法是什么?
我有两个分支A和B.我想要做的是在A上创建一个新的(合并)提交,当前状态为A作为父级,引用B描述的文件树丢弃任何东西.基本上是历史B应该被压缩成一个提交.
具体的存储库状态由两个独立的分支组成,这些分支没有共同的祖先(来自两个独立的独立存储库),但描述相同的内容.现在我想找到一个"git" - 将它们组合在一起.一个基本的解决方案(没有git)将是结帐A并只是将B的内容复制到工作树中并执行git commit.这基本上是我之前所做的将第二个存储库的内容传播到第一个存储库中的内容.
用git做的我试过了
git checkout A
git merge --squash B
Run Code Online (Sandbox Code Playgroud)
但不幸的是,它为A和B之间不同的所有文件生成了合并冲突,这肯定不是我的预期.
基本上就像是
git merge --squash -s theirs
Run Code Online (Sandbox Code Playgroud)
应该做的工作,但合并策略theirs不存在.阅读文件显示使用类似的东西的可能性
git merge -X theirs
Run Code Online (Sandbox Code Playgroud)
这是合并策略的一个选项recursive.但是这仍然会合并非冲突的块.只有冲突的块直接从中获取theirs.