如何使用Git撤消推式合并?

如何使用Git撤消推式合并?,git,Git,我对git非常陌生,最近尝试使用以下命令序列进行合并: git签出主机 #将问题#2分支合并到主分支 git合并问题#2 git推送源主机 看起来默认情况下已经执行了快进合并,如问题末尾包含的git reflog的输出列表所示???历史记录显示合并分支的每个提交 我想撤销分支合并的问题2。然后我想执行挤压合并 我认为revert更适合于撤消推送的合并,因此我尝试了以下方法: # revert the commits for MERGE ISSUE#2: FAST_FORWARD?? git r

我对git非常陌生,最近尝试使用以下命令序列进行合并:

git签出主机
#将问题#2分支合并到主分支
git合并问题#2
git推送源主机
看起来默认情况下已经执行了快进合并,如问题末尾包含的
git reflog
的输出列表所示???历史记录显示合并分支的每个提交

我想撤销分支合并的问题2。然后我想执行挤压合并

我认为
revert
更适合于撤消推送的合并,因此我尝试了以下方法:

# revert the commits for MERGE ISSUE#2: FAST_FORWARD??
git revert -m 1 d52c603
但是,它只恢复我要合并的分支的最新提交

如何撤消Issue2分支合并(回滚以提交ee59444)? 然后,如何对我的所有签入只进行一次提交就可以执行合并(提交43d090e到d52c603)

我是新手!我想我应该做的是:

git checkout master
git merge --squash Issue#2
git commit -m "Merge message"
git push origin master
我能做什么

git checkout master
git reset --hard ee59444
git push --force

git merge --squash Issue#2
git commit -m "Merge message"
git push origin master
或者使用
还原
而不是
重置
更安全

Git Reflog e2c6058头@{0}:拉:快进 ee59444头@{1}:重置:移动到ee59444 e2c6058 HEAD@{2}:commit:Doc:Add test-utils提供的Kafka配置默认值的详细信息 6481400头@{3}:签出:从一个主机移动到另一个主机 6481400头{4}:结帐:从第2期转到主版 d52c603负责人{5}:结帐:从母版转移到发行版#2 6481400头@{6}:签出:从一个主机移动到另一个主机 6481400头@{7}:重置:移动到64814001c5d6162665fe0494d95275660b6ec2e0 6481400头{8}:结帐:从第2期转到主版 d52c603负责人{9}:结帐:从母版转移到发行版#2 6481400 HEAD@{10}:revert:revert“Doc(Issue#2):添加Doc header解释默认配置” d52c603头@{11}:签出:从一个主机移动到另一个主机 d52c603头@{12}:签出:从一个主机移动到另一个主机 d52c603标题{13}:合并问题#2:快进 ee59444头@{14}:签出:从一个主控移动到另一个主控 ee59444头@{15}:签出:从一个主控移动到另一个主控 ee59444磁头@{16}:重置:移动到原点/主节点 c5dfc28负责人{17}:结帐:从第2期转到主版 d52c603头@{18}:提交:文档(问题2):添加文档头解释默认配置 b41e109 HEAD@{19}:提交:测试(问题2):为Kafka消费者服务添加测试 2c180b7 HEAD@{20}:提交:测试(问题2):为MqttKafkaBridge添加测试 129f689 HEAD@{21}:提交:测试(问题2):为WebApp.BackgroundServices添加框架单元测试 499f566头@{22}:提交:测试(问题2):添加ProducerService测试 4b6e3f1头@{23}:提交:测试(问题2):为ProducerService添加框架测试 ea811f0头@{24}:提交:测试(问题2):添加卡夫卡测试 2255b09头@{25}:提交:重构:删除未使用的导入 0e27f22头@{26}:提交:Docker:rest代理的更新端口 59519d7 HEAD@{27}:提交:测试(问题2):为S3服务添加测试 5783a02 HEAD@{28}:提交:测试(问题2):为Mqtt服务工厂添加测试 fbac0f7头@{29}:提交:测试(问题2):为Mqtt服务添加单元测试 a367b03头@{30}:提交:重构(问题2):删除未使用的导入 a717895头@{31}:提交:测试(问题2):添加Mqtt工厂测试 6c62f38头@{32}:提交:测试(问题2):添加Mqtt工厂测试 c5dfc28负责人{33}:结帐:从主版转移到发行版#2 c5dfc28头{34}:拉源问题#2:快进 ee59444头@{35}:拉——标签原点主控:快进 142ff05头@{36}:拉--标签原点主控:快进 f3a82e2头@{37}:拉--标记源主机:快进 4730534 HEAD@{38}:commit:Fix:Fix关闭选项卡时阻塞信号器的处理 8fef99c HEAD@{39}:提交:功能:添加自动卡夫卡主题创建 085da18头@{40}:拉--标签原点主控:快进 8973ef4头@{41}:提交:为集线器添加信号器日志记录和处置 a6c3ed3头@{42}:拉——标签原点主控:快进 8079575头@{43}:拉--标签原点主控:快进 babec37 HEAD@{44}:pull--tags原点主控:快进 601292d HEAD@{45}:commit:HORE(结构):将Autofac模块测试添加到集成测试中 588433b HEAD@{46}:commit:Test:Refactor以使用核心测试utils c9300f1头@{47}:提交:测试:重构以使用核心测试UTIL 48c3d1a头@{48}:提交:琐事(依赖项):更新包依赖项 112d8ab头@{49}:拉——标签原点主控:快进 ccc2d97头@{50}:拉——标签原点主控:快进 d786256 HEAD@{51}:commit:doc(自述文件):添加对基本URL的解释 3c45bb0头@{52}:拉——标签原点主控:快进 bbdfa12头@{53}:提交:重构:删除临时上载测试项目 e653daa头@{54}:提交:修复:将错误的项目引用添加到WebApp.S3.autofacmodel 8282f59头@{55}:提交:重构:重命名mqttkafka桥项目 cc437cf头@{56}:提交:重构:重构mqtt和kafka配置 a4cad1c头@{57}:拉——标签原点主控:快进 吉特日志 git日志的输出

git签出问题#2
git日志--一行
d52c603文档(问题#2):添加文档标题解释默认配置
b41e109测试(问题2):添加卡夫卡消费者服务的测试
2c180b7测试(第2期):添加MqttKafkaBridge测试
129f689测试(问题2):为WebApp.BackgroundServices添加框架单元测试
499f566测试(问题2):添加产品服务测试
4b6e3f1测试(问题2):为ProducerService添加框架测试
ea811f0测试(第2期):添加卡夫卡测试
2255b09重构:删除未使用的导入
0e27f22 Docker:更新rest代理的端口
59519d7测试(问题2):为S3服务添加测试
5783a02测试(问题2):为Mqtt服务工厂添加测试
fbac0f7测试(问题2):为Mqtt服务添加单元测试
a367b03重构(问题2):删除未使用的导入
a717895测试(问题2):添加Mqtt工厂测试
6c62f38测试(问题2):添加Mqtt工厂测试
c5dfc28 Rfeactor(问题2):添加实现MQTT工厂
43d090e重构(问题2):为Mqtt添加工厂和构建商合同
git checkout master
git reset --hard <commit>
git push --force
git checkout Issue#2
git rebase -i master
git checkout master
git merge --squash Issue#2
git commit -m "Merge message"
git push origin master
... <-F <-G <-H
...--F--G--H   <-- master
...--F--G--H   <-- master, issue
...--F--G--H   <-- master (HEAD), issue
git checkout issue
...--F--G--H   <-- master, issue (HEAD)
...--F--G--H   <-- master
            \
             I   <-- issue (HEAD)
...--F--G--H   <-- master
            \
             I--J--K   <-- issue (HEAD)
git checkout master
...--F--G--H   <-- master (HEAD)
            \
             I--J--K   <-- issue
git merge issue
...--F--G--H
            \
             I--J--K   <-- master (HEAD), issue
             S   <-- ???
            /
...--F--G--H   <-- ???
            \
             I--J--K   <-- master (HEAD), issue
git branch redo <hash>
...--F--G--H   <-- redo
            \
             I--J--K   <-- master (HEAD), issue
...--F--G--H   <-- master (HEAD)
            \
             I--J--K   <-- issue
git merge --squash issue
...--F--G--H   <-- master (HEAD)
            \
             I--J--K   <-- issue
...--F--G--H---------M   <-- master (HEAD)
            \       /
             I--J--K   <-- issue
git commit
...--F--G--H---------S   <-- master (HEAD)
            \
             I--J--K   <-- issue
...--F--G--H
            \
             I--J--K   <-- master (HEAD), issue
git reset --soft <hash-of-H>
git commit
...--F--G--H--L   <-- master (HEAD)
            \
             I--J--K   <-- issue
git push origin master
...--F--G--H--S   <-- master (HEAD)
            \
             I--J--K   <-- issue
...--F--G--H   <-- master
...--F--G--H--I--J--K   <-- master
...--F--G--H--S   <-- master
            \
             I--J--K   <-- ???