- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在我的 git 分支之间遇到了一个问题,我不确定如何处理。假设我正在处理的每个版本都有单独的分支。例如,我有“Release-1”和“Release-2”作为我的分支。这些版本本质上是连续的,即“Release-2”包含“Release-1”中的所有内容,但反之则不然。就我而言,我不小心将“Release-2” merge 到“Release-1”中并在没有意识到我的错误的情况下推送了它。一个我意识到我犯了一个错误,我继续发布:
git revert -m 1 <sha-of-bad-merge-commit>
这似乎解决了所有问题; “Release-2”代码中没有一个在“Release-1”中,而且看起来都是正确的。我把它推到我的上游,认为它已经解决了。快进到今天。我已经在“Release-1”分支中应用了错误修复。现在,我想将“Release-1” merge 到“Release-2”中,但我遇到了冲突。 Git 认为在 revert 中所做的更改应该 merge 到“Release-2”中。本质上,当我尝试 merge 时,git 想要删除从“Release-2”意外引入“Release-1”的“Release-2”中的更改。
我尝试研究解决方案,但没有找到。我发现最接近的应用是过早 merge 、恢复,然后在稍后尝试再次 merge 。解决方案是还原还原,然后再次进行 merge 。我认为这在这种情况下行不通,因为这会将本不应包含在“Release-1”中的更改重新引入“Release-1”。
除了逐行查看每个受影响的文件以选择正确的更改集之外,是否有一种很好的“基于 git”的方法来解决这个问题?我不想简单地从存在冲突的“Release-2”分支中获取更改,因为其中一些可能是合法的。此外,我考虑过将错误修复分支 merge 到“Release-2”,但将来可能会再次出现该问题。我想防止这种情况发生。
下面是大致的情况:
(Release-2) ---A----B----C---x---x---------*D*
\ /
(Release-1) ---x----Y------M---x---^M----Z
假设 A、B 和 C 是我想要的“Release-2”的正常提交。 “Release-1”的尖端是 Y,仅包含“Release-1”作品。提交“M”是我不小心在“Release-1”分支中 merge 提交“C”和提交“Y”的地方。在某些时候,我注意到我的错误并恢复 merge (提交'^M')。提交“Z”然后在其中包含我的修补程序。此时我想将“Release-1” merge 回“Release-2”。我这样做并以“D”结束。这是我遇到问题的地方。本质上,我在“D”处的 merge 告诉它要删除我不想要的“A”、“B”和“C”中所做的所有更改。由于 merge 还原,其他文件显示为冲突。例如,当我进行还原时,我在“Release-2”中想要的一些文件在“Release-1”中被删除了。现在,在“D”处,git 告诉我存在 merge 冲突,因为一个分支删除了文件而另一个分支修改了文件。
如果有人有任何建议,我将不胜感激。谢谢!
最佳答案
(我将把你的 ^M
提交称为 Mrevert
,因为 ^
字符在某些后面的命令。)
执行 git merge --abort
以放弃创建提交 D
的尝试。
因为你有一系列的提交 x--Mrevert--Z
,你需要 pull 入 x
和 Z
更改,但不是 Mrevert
的,您需要一个三步过程:
git merge Mrevert^
将所有更改引入 Mrevert
点。 (c^
语法表示“提交 c
的父级”。)git merge -s ours Mrevert
告诉 git ^M
还原提交的更改已经在您的分支中。 -s ours
表示保留我们的(即 Release-2 的)树版本,而不用担心任何真正的“merge ”。git merge Z
merge 来自 Z
的更改。这将生成如下的提交图:
(Release-2) ---A----B----C---x---x---M1-----M2------M3
\ / / /
(Release-1) ---x----Y------M-------x---Mrevert----Z
如果您执行 git diff M1 M2
,您会看到 M2
不会将任何更改 pull 入 Release-2。
关于git - 修复被推送的 'backwards' git merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208895/
我是学习深度学习的新手,我一直在努力理解 Pytorch 中的“.backward()”是做什么的,因为它几乎完成了那里的大部分工作。因此,我试图详细了解反向函数的作用,因此,我将尝试逐步编写该函数的
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在开发一个同时具有 GUI(图形)和 API(脚本)界面的应用程序。我们的产品有一个非常大的安装基础。许多客户投入了大量时间和精力来编写使用我们产品的脚本。 在我们所有的设计和实现中,我们(可以理
我从事的项目以源代码和二进制形式免费分发,因为我们的许多用户需要专门为他们的系统编译它。这需要一定程度的考虑,以保持与旧主机系统(主要是它们的编译器)的向后兼容性。 其中一些最糟糕的,例如 GCC 3
我需要在 Python 中创建一个树状结构。我有一个函数 get(parentId),它返回具有该父级的对象列表——我认为应该递归地完成。 结果应该是这样的:["root object", ["chi
我正在尝试为移动菜单制作动画,因此当点击它时三条纹应该变成“X”,当关闭菜单时它应该恢复为三条纹。 “X”的动画效果非常好,但关闭时它会跳回三条纹,而不是平滑地过渡回它。这是因为我当然完全删除了 x
训练用PyTorch编写的LSTM或RNN时,在loss.backward()上报错: RuntimeError: Trying to backward through the graph
为什么参数到atan2功能是“倒退”的?即,为什么它接受 y, x 形式的坐标而不是标准 x, y ? 最佳答案 因为它类似于atan(y / x) , 与 y作为分子和 x作为分母。 关于math
data.table很棒,因为我可以进行滚动连接,甚至可以在组内进行滚动连接! library(data.table) set.seed(42) metrics metrics[calendar,r
我正在开发一个 grails 插件,它添加了一个新的标签库并呈现了一个模板。 我的问题是这个模板输出一个 JSON 并且我不需要它被编码。 如果我使用 raw() 函数,它工作正常,但这与 grail
我想匹配字符串中的数字:'abc@2003,或其他@2017'我想通过 match 函数获得结果 [2003, 2007]。 let strReg = 'abc@2003, or something
Douglas Crockford,因此,JSLint 真的不喜欢 for 循环。大多数时候我同意,并使用 [].forEach 和 Object.keys(obj) 遍历数组或字典。 但是,在某些情
这个问题在这里已经有了答案: Difference between null == x and x == null? [duplicate] (5 个答案) 关闭 7 年前。 我正在查看一些代码,发
我有一个 PyTorch 计算图,它由一个执行某些计算的子图组成,这个计算的结果(我们称它为 x)然后被分支到另外两个子图中。这两个子图的每一个都会产生一些标量结果(我们称它们为 y1 和 y2)。我
不是从前面读取文件,而是可以向后读取它吗?这样输出是从文件的后面到文件的前面。 编辑:最后一行首先显示,而不是完全向后显示。 最佳答案 这是可能的,但很麻烦。 Lua API 提供 seek函数来设置
我用 Storyboard 创建了我的应用程序,直到很晚才意识到 iOS4.3 设备将不受支持。是否有一个选项可以将 Storyboard View 复制到 xib 中或在运行时以编程方式执行此操作?
我为那些犯了同样错误的人发布了这个问题。尝试计算梯度时出现此错误: criterion = torch.nn.CrossEntropyLoss() loss = criterion(y_hat, y_
我一直在阅读this article并且在他们的一节中指出: Lenses compose backwards. Can't we make (.) behave like functions? Yo
编辑:这对我来说是“倒退” - 我可能缺少一些直觉 给定一个 glm 变换函数,例如 glm::translate,两个参数首先是一个矩阵 m,然后是一个用于平移的 vector v。 直观上,我希望
我正在使用调查图/图遍历 compile group: 'org.jgrapht', name: 'jgrapht-core', version: '1.1.0' 使用下面的代码我可以创建一个简单的图
我是一名优秀的程序员,十分优秀!