我的情况有点像这样:
extract($_POST); // Doing this will break up your array keys into variables.
$sql = "INSERT INTO posts (id, title, date,body, author) VALUES (null, '". $title ."', NOW(), '".$body. "', '". $author."')";
$query = mysqli_query($conn, $sql) or die(mysqli_error());
这一切都很好。不幸的是我发现我需要对F进行更改(在J和E之间提交后),所以我试图完成以下操作:
(branch 1) A -- B -- C
\
(dev br) E -- F -- G -- H
/ /
(branch 2) I -- J -- K -- L
我的初始方法是使用(branch 1) A -- B -- C
\
(dev br) E -- F' -- G -- H
/ /
(branch 2) I -- J -- K -- L
上的修复程序进行另一次提交并执行rebase并将其压缩为F.但是,这使我能够再次解决CG合并和LH合并中的所有合并冲突,这是相当复杂的,我不想这样做。
接下来的尝试,我基本上检查了F,做了我的更改,然后樱桃选择了G顶部。这做了正确的改变,我没有太多解决。但是,现在git并不认为这是一个合并(因为我猜它是樱桃挑选,虽然我确实提供了-m命令)。有没有办法不丢失合并信息?
我也尝试使用rebase,运行它为dev br
,但这也让我经历了所有以前的提交(A-C,但实际上还有更多)并再次解决他们的rebase冲突。
如何在不疯狂的情况下这样做?我确定必须有一个正确的方法来做到这一点。
答案 0 :(得分:2)
直到明天我才会知道是否有人知道任何甜蜜的技巧。
好的:一个" Git技巧"对你而言 根据你的描述,樱桃挑选是最有前途的方法。
"但是,现在Git并不认为这是合并"。
但它可以。
将F
修改为F'
后:
在没有立即提交的情况下制作你的挑选:
git cherry-pick --no-commit -m 1 vG
git stash
添加合并信息(不使用ours
策略重做任何合并)
git merge -s ours -m "Gp" branch1
git stash pop
git commit --amend --no-edit
这会创建一个G'
(G
素数或Gp
),它会记录来自branch1
的合并,同时保持樱桃选择的结果完好无损。
您可能需要为H
重复此操作,并且您已完成。
(下面提到的OP Catsunami in the comments需要git stash
以便允许合并继续进行)