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 關注
- 774 瀏覽
添加回答
舉報