Repo操作及常見問題


    Repo是Google用Python腳本寫的調用git的一個腳本,主要是用來下載、管理Android項目的軟件倉庫。

一、首次配置環境及初始化repo:

1、先配置環境:

mkdir bin              //在根目錄創建bin目錄

cp repo bin/                    //前提是存在repo這個文件.  將repo復制到bin目錄下

export PATH=$PATH:~/bin      //加入環境變量

mkdir work_repo           //在根目錄創建一個work_repo目錄,用於存放項目

2、初始化倉庫: 

cd  work_repo            //切換到work_repo目錄

repo init -u ssh://XXX  -b XXX -m XXX.xml        //根據具體項目地址進行初始化

在初始化的過程中,可能出現網址無法訪問的情況,則可以進行如下修改:

仍然在work_repo目錄下,

rm .*

rm .repo/ -rf

cd ..              //切回根目錄    

vim bin/repo            //在repo文件中將訪問地址改為最新的https://gitee.com/FlymeGit/repo


修改后,切換目錄至work_repo,然后執行上述初始化命令即可。      

3、同步代碼

repo  sync  -c --no-tags            //首次一般使用該命令同步所有代碼(Android整個源碼)

若只更新某個模塊,則可使用命令:

repo  sync  -c  -d  XXX                 //XXX模塊名

二、常見問題:

1、repo sync時可能出現問題,對於已有項目已經編譯過,會有很多新生成或修改的文件。如果需要清除這些多的文件以及將所有修改的文件恢復回去,可以運行下述兩個命令:

repo forall -c "git reset --hard HEAD"

repo forall -c "git clean -df"

但是android下面的out目錄需要手動清除:rm  -rf  out.

在這個基礎上,再repo sync一般就不會有問題了。

2、提交代碼時,出現權限不足,可能原因:

  檢查repo配置信息,用戶名+郵箱+key等是否存在錯誤,查看config文件(因有些在命令下顯示的是正確的,但是文件中配置的是錯誤的,可能存在非法字符等)。

3、在本地創建臨時分支進行代碼的修改,由於其他原因,直接切回了主分支,出現下述問題:  

    臨時分支上的修改也作用於了主分支

產生原因:切換到主分支前,沒有在臨時分支上提交修改。

此時可使用如下操作:(這樣可使得提交歷史更清晰整潔)

1)若本地有修改,則先執行
        git stash          //保存本地修改2)git pull --rebase       //更新到修改前3)git stash apply         //恢復本地修改記錄4)然后進行正常的git add 、  git commit 提交等操作。即可,驗證已通過。

 4、這是在我的開發中出現的問題,每個人出現的問題可能不一樣,並不一定都適合,算是提供一個思路吧!

 5、建議:

  對於命令的使用及含義的理解,最好在本地Git-Bash中自己測試驗證,這樣不但有助於理解,也能驗證其正確性,網上的也不一定都正確!

  repo只是管理工具。因此除了上傳,同步所有代碼外,其他的本地各種操作都是git命令!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM