我知道,如果我想強行從遠程回購覆蓋與文件的本地回購,我這樣做:如何在保留歷史記錄的同時用遠程回購變更強制覆蓋本地回購?
git fetch --all
git reset --hard origin/master
這樣做的問題是,當我去看看當地的回購歷史,它完全抹殺了歷史,並用遠程回購歷史的抄本取而代之。
有沒有辦法在強制覆蓋的同時保留歷史記錄?
例如,如果我在本地回購具有以下內容的文件:
- ContentA
- ContentB
- ContentC
而且我有遠程回購相同的文件,內容如下:
- ContentA
- ContentC
- ContentD
從遠程回購之後,我希望歷史記錄顯示此文件:
Version #1
- ContentA
- ContentB
- ContentC
Version #2
- ContentA
- ContentC
- ContentD
我不'不想它顯示這個(從強制覆蓋):
Version #1
- ContentA
- ContentC
- ContentD
我也不想讓它顯示這個(從合併):
Version #1
- ContentA
- ContentB
- ContentC
Version #2
- ContentA
- ContentB
- ContentC
- ContentD
這可能嗎?
你可以看看定義你自己的定製git合併驅動程序。 – DavidN
此外,您的重置 - 難以產生/主要移動您的本地主人的承諾,所以我認爲你只是失去了你的工作。聽起來像你想合併,但以一種特殊的方式。我只是想知道你是否不像其他人那樣使用git,因爲你可以很容易地用git看到這兩個版本。通常人們不想在將文件放在一起時連接文件。他們希望以合併的方式合併它們。 – DavidN
您可以將遙控器重新綁定到本地,或者您可以將遙控器拉到一個單獨的分支,然後重置 - 軟,隱藏和彈出,或櫻桃選擇從遠程單個提交。 –