如何使用Git插入提交?

8

我需要在我的git仓库的主分支中插入一个提交,同时保留后续的合并和提交。

目前我的情况类似于这样

A--B--C--D--E--F     master
       \     \  
        G--H  I--J   branches

需要插入一个提交K,使得新的结构变为

A--B--K              master
    \
     C--D--E--F      new branch
      \     \  
       G--H  I--J    old branches

我不确定这是否可能。有什么想法吗?
3个回答

9
git checkout master
git branch new_branch # copy current branch master to new_branch
git reset --hard B    # now master points to B
(hack, hack, hack)
git commit -m K       # K on B in master

2
将“master”分支重命名为“new branch”。然后从提交B检出,从那里开始一个名为“master”的新分支,并进行更改。以下内容类似于此(未经测试)。
git branch -m master new_branch
git branch master B
git checkout master

感谢您的回答。这将导致提交A成为“新分支”的一部分,而不是“主分支”的一部分。因此,“主分支”的历史记录变为“B--K”,而不是预期的“A--B--K”。通过从B进行分支并提交K,可以实现相同的结构(具有不同的分支名称)。 - Jason
@Jason,我知道我来晚了4年,而且你的账户似乎已经不存在了;但是提交A将成为“new_branch”和“master”的成员。它是一棵树,许多分支可以共享相同的祖先。当然,它可能以这种或那种方式被注释(例如通过git log --graph --oneline --all),但那只是一种注释 - git log mastergit log new_branch都将显示两者都有A。对于您创建此相同结构的建议也是如此。 - 13ren

0
# git checkout -b new-master B

现在对K进行更改,提交它们,然后瞧,你想要的结构就出现了。:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接