[英]Git delete second repository and history
我相信我復制粘貼了一個git項目內容(編輯) B。在我項目的文件夾中A.經過一些測試和修改后,我刪除了git項目B,並添加了它。 但是我的項目A中仍然顯示了所有提交歷史記錄。
觀察:
當我做git branch -av時,我只看到項目A的分支很好。
當我做git遙控器時,我只看到好的原點(我刪除了項目B - 原點)
當我展示所有分支時,我看到兩個項目的提交。
沒有提交已從項目A合並到B或反之亦然。 (我在sourcetree中可以看到兩個項目從未相互交叉過。
在.git文件夾中,我可以在日志中看到SHA並且引用不屬於項目A的dans。
我不知道我到底做了什么來結束這種狀態......
評論:
文件夾路徑的示例:
C:\\ gitRepo \\ ProjectAB \\
C:\\ gitRepo \\ ProjectAB \\項目A-1 ...
C:\\ gitRepo \\ ProjectAB \\項目A-2 ...
C:\\ gitRepo \\ ProjectAB \\項目B-1 ...
C:\\ gitRepo \\ ProjectAB \\項目B-2 ...
當您將B復制粘貼到A git倉庫時,您創建了一個嵌套的git倉庫 。
這意味着,每次B進行新的提交時,A都會將新的B SHA1記錄為gitlink ( A索引中的特殊條目 )。
刪除B時,在A中添加並提交該刪除(以記錄gitlink B的刪除)。
但是A的歷史仍然會包含B在歷史中被修改的所有實例(因為B gitlink每次B都有自己的新提交時會改變)。
要從歷史記錄中完全刪除B,您需要git filter-branch
(重寫歷史記錄)
就像是:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-B' \
--prune-empty -- --all
在OP Kadgiko的案例中, 經過討論 ,似乎:
.git
內容) 結論是:
好吧,將創建一個新項目,並從那里開始,這是一個相對較新的項目,如果我們失去了最后的100次提交,這將不會太麻煩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.