我有兩個存儲庫。我不時想將other
的內容合併到main
中。但是,合併忽略已刪除的文件。讓我通過一個例子來解釋一下:Git忽略合併時刪除的文件
mkdir -p test/main test/other
cd test/other/
git init
touch one two three
git add .
git commit -m "Add one, two and three."
cd ../main/
git init
touch four
git add .
git commit -m "Add four."
添加other
到main
遠程。
git remote add other ../other/
git fetch other
合併其內容。
git merge --squash other/master
git commit -m "Merge other."
它正確地將文件添加。現在,刪除other
中的文件。
cd ../other/
git rm two
git commit -m "Remove two."
合併變爲main
。
cd ../main/
git fetch other
git merge --squash other/master
後合併git status
說:
# On branch master
nothing to commit (working directory clean)
我希望合併刪除two
,因爲它是在other
刪除。我究竟做錯了什麼?
沒錯,這個解釋是有道理的。我想做一個南瓜合併,不污染與其他主要歷史。但看起來沒有其他辦法。謝謝你的幫助! –
@GergoErdosi如果你想*查看*「未受污染的」歷史,請查看'first-parent'選項到'git log'。 – Borealid
感謝您的提示! –