3 回答

TA贡献1868条经验 获得超4个赞
如果您需要使用重写父提交git replace,这就是方法。
正如菲利普·奥克利(Philip Oakley)所述,git replace只是将一个提交替换为另一个提交。要将父级嫁接到现有提交上,您需要先使用正确的父级创建一个伪提交。
假设您有两个要移植的git分支:
(a)-(b)-(c) (d)-(e)-(f)
现在我们希望(d)是(c)的父代。因此,我们用正确的父项(让我们将其称为c1)创建替换(c),然后git replace用(c1)替换(c)。在这些步骤中,每个字母均表示代表该提交的SHA1哈希。
要创建新的提交:
git checkout d
git rm -rf * # remove all files from working direcotry
git checkout c -- . # commit everything from c over top of it
GIT_AUTHOR_DATE="..." GIT_COMMITTER_DATE="..." git commit -m "..." # create replacement commit with date author
现在,您有了具有正确的父项(d)的提交(c1)。因此,我们要做的就是用(c1)替换现有的(c):
git replace c c1
现在您的历史记录如下:
(a)-(b)-(c1)-(d)-(e)-(f)
答对了!
- 3 回答
- 0 关注
- 758 浏览
添加回答
举报