亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從文件夾創建子模塊存儲庫并保留其git提交歷史記錄

從文件夾創建子模塊存儲庫并保留其git提交歷史記錄

Git
翻過高山走不出你 2019-12-09 13:14:04
我有一個以特定方式瀏覽其他Web應用程序的Web應用程序。它在一個demos文件夾中包含一些Web演示,并且其中一個演示現在應該具有自己的存儲庫。我想為此演示應用程序創建一個單獨的存儲庫,并使其成為分包 主存儲庫中的子模塊,而不會丟失其提交歷史記錄。是否可以保留存儲庫文件夾中文件的提交歷史記錄,并從中創建存儲庫并將其用作子模塊?
查看完整描述

3 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

克隆并保留所有這些額外分支和提交的簡單方法:


1-確保您具有此git別名


git config --global alias.clone-branches '! git branch -a | sed -n "/\/HEAD /d; /\/master$/d; /remotes/p;" | xargs -L1 git checkout -t'

2-克隆遙控器,拉出所有分支,更改遙控器,過濾目錄,按入


git clone [email protected]:user/existing-repo.git new-repo

cd new-repo

git clone-branches

git remote rm origin

git remote add origin [email protected]:user/new-repo.git

git remote -v

git filter-branch --subdirectory-filter my_directory/ -- --all

git push --all

git push --tags


查看完整回答
反對 回復 2019-12-09
?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

GabLeRoux的解決方案效果很好,除非您使用git lfs該文件,并且在要分離的目錄下有大文件。在這種情況下,在第3步之后,所有大文件都將保留為指針文件,而不是實際文件。我猜可能是由于.gitattributes文件在過濾器分支過程中被刪除了。


意識到這一點,我發現以下解決方案適用于我:


cp .gitattributes .git/info/attributes

將.gitattributes哪個git lfs用于跟蹤大文件的文件復制到.git/目錄中,以避免被刪除。


過濾分支完成后,.gitattributes如果您仍要對新存儲庫使用git lfs,請不要忘記放回:


mv .git/info/attributes .gitattributes

git add .gitattributes

git commit -m 'added back .gitattributes'


查看完整回答
反對 回復 2019-12-09
  • 3 回答
  • 0 關注
  • 689 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號