Git 合并分支操作有哪些意外后果

不可逆后果?多了个不可撤销的commit纪录而已。覆盖错掉checkout老版本手动合并重新commit即可
■网友
对于 git 来说, 只要代码被 commit 过, 在绝大多数情况下的操作都没有"不可逆"的说法.具体来说:1. 代码要被 commit 过. 如果你一个文件从来没有添加到 repo 中, 或者你修改了一个文件然后从来没有 commit 过, 接着你做了 git clean -fdx 或者 git reset --hard, 不管你用多么可怜巴巴的目光看着我也是恢复不了的.2. 绝大多数情况下的操作都没有"不可逆"的说法. 先说"可逆". 假如你做了一个错误的 merge, 或者错误的 commit, 你都可以用 git reset 撤销, 稍微复杂一点的用 git rebase 基本都能搞定. 在 git 里 history 是可以修改的, 只是不建议修改已经公之于众的 history 而已. 一般我会建议在做这样的操作之前, 新建一个 branch 当作备份. 但就算是你不备份, git reflog 也会是最后一道强大的防护网, 通过它能够回到最近的一系列 repo 的状态上. 然后说"绝大多数情况下". 如果你把本地 repo 直接删除了, 很难救你. 如果你用 git gc 之类的命令配合一堆参数把 reflog 弄没了, 然后没备份就玩高难度的操作, 结果还失败了, 不要用可怜巴巴的眼神看我, 很难救你. 但绝大多数人工作中所遇到的绝大多数情况, 都不会是这么极端的, 很多人恐怕连 git gc 都没有听说过, 所以我才说使用 git 时很少需要担心自已的操作会造成毁灭性的影响.
■网友
操作需谨慎,错了并不可怕,可怕的是,错了你还乱试验,就真的是不可逆了。


    推荐阅读