3 回答

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果您需要使用重寫(xiě)父提交git replace,這就是方法。
正如菲利普·奧克利(Philip Oakley)所述,git replace只是將一個(gè)提交替換為另一個(gè)提交。要將父級(jí)嫁接到現(xiàn)有提交上,您需要先使用正確的父級(jí)創(chuàng)建一個(gè)偽提交。
假設(shè)您有兩個(gè)要移植的git分支:
(a)-(b)-(c) (d)-(e)-(f)
現(xiàn)在我們希望(d)是(c)的父代。因此,我們用正確的父項(xiàng)(讓我們將其稱為c1)創(chuàng)建替換(c),然后git replace用(c1)替換(c)。在這些步驟中,每個(gè)字母均表示代表該提交的SHA1哈希。
要?jiǎng)?chuàng)建新的提交:
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
現(xiàn)在,您有了具有正確的父項(xiàng)(d)的提交(c1)。因此,我們要做的就是用(c1)替換現(xiàn)有的(c):
git replace c c1
現(xiàn)在您的歷史記錄如下:
(a)-(b)-(c1)-(d)-(e)-(f)
答對(duì)了!
- 3 回答
- 0 關(guān)注
- 787 瀏覽
添加回答
舉報(bào)