我们意外地将分支XYZ合并到DEV中并将其推送到原始仓库.这是使用--no-ff完成的,以创建单独的合并提交.一旦我意识到错误的合并,我做了一个git revert来创建一个恢复提交并将其推出.一切都很好,有很多欢乐......
直到我们试图将XYZ合并到开发中.最初的混淆是由于在合并的dev分支上找不到添加到XYZ的大量文件.然后我意识到DEV分支具有恢复提交,该恢复提交删除了由于合并而添加到XYZ以及随后到DEV的所有文件.
这是简化的事件链:
$ git checkout dev
$ git branch xyz
$ git checkout xyz
$ git add files/foo.xyz
$ git commit -m "blargh"
Run Code Online (Sandbox Code Playgroud)
在这里意外合并发生:
$ git checkout dev
$ git merged xyz
$ git push origin dev
Run Code Online (Sandbox Code Playgroud)
这是我试图挽救这一天:
$ git revert <SHA>
$ git push
Run Code Online (Sandbox Code Playgroud)
恢复提交到位,每个人都很开心
... more work happens ...
Run Code Online (Sandbox Code Playgroud)
那么,现在终于合并xyz了:
$ git checkout xyz
$ ls files/foo.xyz
files/foo.xyz
$ git checkout dev
$ git merge xyz
$ ls files/foo.xyz
File not found
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
a)什么是回滚提交的好方法,特别是如果它们被推送到其他回购?git revert似乎是正确的做法,但在合并问题之后,我不再那么肯定......
b)假设git …
所以我们把git分支变成了一个棘手的状态:
两个分支:
__CODE__ 它们是这样的,因此它们可以根据用户浏览器大小一次下载一个.
盒子包装器下面是另一个box-wrapper2 div,它包含四个不浮动的div.
它们一个出现在另一个之上.
问题是由于某种原因,box-wrapper2 div正在向上移动并且在盒子包装器后面.我希望它位于顶部包装器下方.
我该怎么做呢?
这是我正在谈论的页面:http: //www.rattletree.com/index2.php
如果你使用firebug并将鼠标悬停在第一个"programDetail"div上,你可以看到它在上面的div下面.
谢谢你的帮助!
我使用 Gerrit 犯了一个致命的错误,想知道是否有人可以为此提供解决方案/想法:
目前的情况是我有一个分支feature-foo,我们的团队正在将更改推送到该分支以供审核。其中一些更改已经提交/合并,并且仍有大量更改供审核。现在,昨天我决定将补丁集推送到特定更改,其中包含大约 15 个之前的更改(尚未合并)。
我不小心推过了代码审查(是的,我确实有这些权限,是的,我很愚蠢,为了我自己的安全没有停用它们 - 吸取了教训)。这导致这 15 个更改/提交被直接推送到分支而不是代码审查。所以现在所有这些更改都MERGED在 Gerrit 中进行了标记。我的直接想法是push -f使用我知道最初是feature-foo.
这正确地将分支重置到它应该在的位置。但是 - 这 15 个更改仍然MERGED在 Gerrit 中标记。我想要的是:我需要将这些更改返回到“正在审核”状态,因为它们实际上仍在进行中。
任何想法,任何人?我无法想象这之前没有发生在某人身上......
问候,
--qu
编辑 1:澄清 - 错误推送的提交导致快进 - 而不是合并。尽管如此,对于 Gerrit 来说,这些更改/提交仍然是“已合并”,就好像有人在 Gerrit-Web 界面中按下了“提交更改”一样。所以 -这个问题实际上是关于 Gerrit,而不是 Git 本身。
关键词:意外推送,意外合并