我的历史记录如下:
A-B-C-----------M-I-J-K-L
\ /
D-E-F-G-H
master当前指向L。这已被推到原点。
我想创建一个新的分支,其中包含D到L,并且主节点(原始)指向C或与C匹配的签入。我需要确保其他克隆所做的任何操作都不会中断。然后在以后的某个时刻,我想将D到L合并回master并推送到原点。
我看过使用还原,但看起来会影响以后合并的内容。有一种方法可以做到,我很困惑。
答案 0 :(得分:1)
首先从L
创建一个新分支,以便获得参考
git checkout master
git checkout -b thisIsL
现在更改母版以指向特定提交deadbeef
,以获取更好的十六进制值
git branch -f master deadbeef
git push --force origin master
(请参阅this answer。)
BUT 可能会破坏远程服务器上的任何其他克隆(在rebase
或-force
标志用于推送提交的任何时候)可能是这种情况)。因此,首先要让其他所有人都付出一切,并准备从新克隆开始(如果他们最终需要这样做)。
答案 1 :(得分:0)
这就是我所做的,我不知道这是否是最好的解决方案:
这使我可以在分支上进行所有更改的一处签到。它也许使历史有些松散,但我认为它将在以后正确地合并。