Git 如何合并包含已还原提交到分支的主节点

Git 如何合并包含已还原提交到分支的主节点,git,merge-conflict-resolution,git-revert,Git,Merge Conflict Resolution,Git Revert,我有初始状态为的主分支: touch file git add file git commit -m "initial" 然后我做了一些改变: echo "123" >> file git commit -am "feature1" 这实际上属于一个功能分支,因此我进行了分支: git branch TEST 并恢复了master中的更改(我不知道这是否是最好的方法,但它做了当时需要的事情): 现在我无法将master合并到它。我想要的是能够将master中所有未来的更改合并到

我有初始状态为的主分支:

touch file
git add file
git commit -m "initial"
然后我做了一些改变:

echo "123" >> file
git commit -am "feature1"
这实际上属于一个功能分支,因此我进行了分支:

git branch TEST
并恢复了master中的更改(我不知道这是否是最好的方法,但它做了当时需要的事情):

现在我无法将master合并到它。我想要的是能够将master中所有未来的更改合并到一个测试分支,并保留我的特性分支更改

代码已被推送到远程。

还原还原 为了能够合并
TEST
分支,您需要还原还原,以便可以干净地应用
TEST
历史记录

也就是说,鉴于最初的主分支历史是:

$ git checkout master
$ git log --oneline
yyyyyyy Revert "wanted change"
xxxxxxx wanted change
....
测试
分支历史记录为:

$ git checkout TEST
$ git log --oneline
aaaaaaa Test development commits
xxxxxxx wanted change
....
您需要的是实现以下目标:

$ git checkout TEST
$ git log --oneline
aaaaaaa Test development commits
zzzzzzz Revert "Revert "wanted change"" # <-
yyyyyyy Revert "wanted change"
xxxxxxx wanted change
....
然后将该分支与主分支合并:

$ git checkout master
$ git merge merge-resolution
$ git branch -d merge-resolution

这将在master中生成一个干净/一致的历史记录,并干净地应用
TEST
的更改。

谁使用此遥控器-只有你?我不确定我是否明白你的要求?也许重新定基调测试会超过master?这将是功能分支的正常工作流程,需要在主流上不断更新development@guido如果我重新设定基准,我会遇到冲突。有没有一种方法可以跳过主服务器的恢复提交?(我是git新手)在还原之前你推错提交了吗?@guido不幸的是,是的。“git分支合并解析”之后不应该有“git签出合并解析”吗?(或者改为“git checkout-b合并解析”)
$ git checkout TEST
$ git log --oneline
aaaaaaa Test development commits
zzzzzzz Revert "Revert "wanted change"" # <-
yyyyyyy Revert "wanted change"
xxxxxxx wanted change
....
$ git checkout master
$ git checkout -b merge-resolution
$ git revert yyyyyyy
$ git merge TEST
$ git checkout master
$ git merge merge-resolution
$ git branch -d merge-resolution