AOSP的repo轉成git


移除AOSP編譯暫存檔案,repo的管理資料,以及各個repo用的各個git目錄
實務上,我個人會比較建議用git clean -df和git reset --hard HEAD每個,來清除暫存檔案
rm -rf out
rm -rf .repo
find ./ -type d -name .git |  xargs -i rm -rf {}


備份.gitignore到家目錄的bak.gitignore
rm -rf ~/bak.gitignore
mkdir ~/bak.gitignore
find ./ -name .gitignore  | sort > ~/bak.gitignore/gitignorelist.txt
find ./ -name .gitignore | xargs -i cp --parents {} ~/bak.gitignore/


檢查一下拷貝的檔案數目是否正確
wc -l ~/bak.gitignore/gitignorelist.txt
find ~/bak.gitignore/ -type f | sort | wc -l


將所有檔案加入git
git init
git add -A -f
git commit -m "init repo"


然後再把~/.bak.gitignore內備份的gitignore加回去
cp ~/.bak.gitignore / .
find ./ -type f -name .gitignore | xargs -i git add {}
git commit -m ".gitignore recovered"

轉換好之後需要編譯看看是否有問題,我自己最常遭遇的就是build system內部有自動打patch或者重置到某個commit的指令,而因為我們把repo和原本的git都刪除了,會造成那些script失效,需視狀況在進行調整。

留言