久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Git和Repo管理使用簡(jiǎn)要介紹

 Library_for_hj 2015-11-23

   在Linux平臺(tái)下進(jìn)行Android系統(tǒng)項(xiàng)目開發(fā)時(shí),需要git或repo管理,。

  一. Git和Repo的區(qū)別:

       1. Git:Git是一個(gè)開源的分布式版本控制系統(tǒng),,用以有效、高速的處理從很小到非常大的項(xiàng)目版本管理,。

       2. Repo: Repo是谷歌用Python腳本寫的調(diào)用git的一個(gè)腳本,。主要是用來下載、管理Android項(xiàng)目的軟件倉庫(也就是說Repo是用來管理給Git管理的一個(gè)個(gè)倉庫的)

  二. Git庫管理項(xiàng)目:

      1. 一般在企業(yè)的Android開發(fā)中,,公司會(huì)給程序員分配一個(gè)遠(yuǎn)程服務(wù)器,,企業(yè)本身也有一個(gè)代碼庫(該代碼庫集合了公司各種不同手機(jī)項(xiàng)目的Android系統(tǒng)代碼)。程序員可以在自己的遠(yuǎn)程服務(wù)器上,,從公司的代碼庫下拉相應(yīng)的手機(jī)項(xiàng)目代碼,然后進(jìn)行基于Android源碼的開發(fā),、維護(hù),、模塊單編譯(mm)、全編譯(make -j4)等各種企業(yè)需求的開發(fā)工作。

      2. 程序員開發(fā)完成需求時(shí),,需要將開發(fā)成果保存在公司的代碼庫,,而這個(gè)保存的過程是需要一系列的安全性工作的。首先,,程序員開發(fā)和維護(hù)的成果,,需要經(jīng)過項(xiàng)目負(fù)責(zé)人(主管、經(jīng)理,、總監(jiān)之類)的評(píng)審,、驗(yàn)證才能最終提交到公司的代碼庫。

      3. 這個(gè)代碼評(píng)審,、核查的過程,,由Gerrit(代碼評(píng)審工具)實(shí)現(xiàn):

            Gerrit簡(jiǎn)介:

            1). 基于 Web 的代碼評(píng)審和項(xiàng)目管理的工具,面向基于 Git 版本控制系統(tǒng),;

            2). 為 Git 引入強(qiáng)制性的代碼審核機(jī)制,,非特別的授權(quán)設(shè)置,向 Git 版本庫的推送(Push)必須要經(jīng)過 Gerrit服務(wù)器,,經(jīng)過審核流程后,,才能正式納入代碼庫;

            3). 每一次提交將對(duì)應(yīng)一個(gè)評(píng)審任務(wù),;

            4). 通過特殊的分支提交評(píng)審任務(wù)(refs/for/….); 

            5). Gerrit 提供的 Git 服務(wù)的端口并非標(biāo)準(zhǔn)的 22 端口,,缺省是 29418 端口;

            6). Gerrit缺省的Http端口是8080,。

      4. Git常用指令操作:

           1). 查看當(dāng)前代碼修改狀態(tài):git status,。如下圖: 注:MSM7x27A-ICS-AP為整個(gè)Android系統(tǒng)源碼所在主目錄

     

     上圖輸入git status指令后,顯示的是你之前更改的代碼文件(包括文件所在路徑)

           2). 查看當(dāng)前項(xiàng)目遠(yuǎn)程代碼庫的提交記錄:gitk

                輸入gitk指令后,,會(huì)跳出相應(yīng)的記錄信息的窗口,,通過該窗口可以查看其它程序員對(duì)本項(xiàng)目的遠(yuǎn)程代碼提交記錄。

           3). 保存更改的代碼狀態(tài):git stash (或者git stash save "命名"),;查看保存記錄:git stash list,;還原保存的更改:git stash apply (或者git stash stash@{x});清除保存的更改記錄:git stash clear,;

                 執(zhí)行g(shù)it stash 指令后,,再執(zhí)行g(shù)it status查看代碼更改狀態(tài),之前modified的代碼記錄將不會(huì)顯示,,代碼回到更改之前的狀態(tài),。

                 執(zhí)行g(shù)it stash指令后,再執(zhí)行g(shù)it stash list,,將看到如下的信息:

                  stash@{0}:..............

                  stash@{1}:...............

                        .

                        .

                        .

                 stash@{0}開頭為最近的一次保存記錄,。有時(shí)候?yàn)榱朔奖阌洃浐瓦€原我們需要還原的修改記錄,,這時(shí)候git stash save "xxx" (xxx由自己命名)就派上用場(chǎng)了,執(zhí)行該指令后 ,,我們?cè)賵?zhí)行g(shù)it stash list,,將看到類似如下信息:            

                  stash@{0}:..............

                  stash@{1}:...............:xxx

                        .

                        .

                        .

                  這樣,我們就可以根據(jù)xxx的標(biāo)記來執(zhí)行g(shù)it stash apply stash@{1} 還原我們之前保存的更改記錄了,。

              4). 服務(wù)器本地代碼同步更新遠(yuǎn)程庫的代碼:git pull --rebase ;

                   在執(zhí)行g(shù)it pull --rebase更新代碼之前,,需執(zhí)行g(shù)it status查看當(dāng)前本地代碼有沒有修改記錄,若有,,則執(zhí)行g(shù)it stash 保存修改記錄,,更新完后執(zhí)行g(shù)it stash apply恢復(fù)更改;如沒有,,則直接執(zhí)行g(shù)it pull --rebase,;(如果本地有修改記錄,則更新會(huì)出錯(cuò)),。

               5). 一次性提交修改項(xiàng)(modified):git commit -a,;接著執(zhí)行"git push origin HEAD:refs/for/遠(yuǎn)程分支名",把代碼提交到臨時(shí)代碼庫(為通過評(píng)審),,然后登錄Gerrit,,添加評(píng)審人員(Add Reviewer),通過評(píng)審,,提交到公司遠(yuǎn)程代碼庫,;

               6). 一次性提交修改項(xiàng)(modified)和添加項(xiàng)(add):git add .  (注意有小點(diǎn)); 單獨(dú)把修改項(xiàng)或添加項(xiàng)提交:"git add 文件(包括所在路徑)";

               7). 提交刪除文件:git rm ,;

               8). 查看遠(yuǎn)程代碼提交記錄節(jié)點(diǎn)信息:git log (按q字母退出);  執(zhí)行g(shù)it log后會(huì)得到提交記錄信息和相應(yīng)的commit id值,,如果需要回退到該程序員修改提交的記錄信息時(shí)的代碼,則執(zhí)行"git reset --soft id值",;

               9). 若代碼提交后(已經(jīng)執(zhí)行g(shù)it push ... 操作),,需要回退到提交之前的狀態(tài):登錄Gerrit-->找到自己提交的Changes-->選擇Abandon Change-->回到遠(yuǎn)程服務(wù)器代碼終端操作,執(zhí)行g(shù)it reset --soft HEAD^

               10). 把修改或刪除的文件回退到原狀態(tài):"git checkout 文件名(包括路徑)",;回退全部:git checkout . (注意有小點(diǎn)) 

               11). 查看當(dāng)前代碼所在的本地分支(帶有*的為當(dāng)前本地代碼的分支):git branch ,;

               12).將把地代碼切換到遠(yuǎn)程對(duì)應(yīng)的分支:"git checkout -b 本地分支名 遠(yuǎn)程分支名";

                     如執(zhí)行g(shù)it branch后出現(xiàn)如下信息:

                      * name1

                         name2

                    name1為當(dāng)前代碼的本地分支,,name2為之前已經(jīng)切換到自己對(duì)應(yīng)的遠(yuǎn)程代碼分支的本地分支,。這時(shí)候,如果需要從name1切換到name2,,那么就不需要再執(zhí)行g(shù)it checkout -b name2 yyy(yyy為遠(yuǎn)程分支名)指令了,,直接執(zhí)行g(shù)it checkout name2;就可以實(shí)現(xiàn)切換到name2分支;

               13). 查看所有分支(包括本地和遠(yuǎn)程):git branch -a,;

  三. Repo管理:

      Repo實(shí)現(xiàn)管理多個(gè)git庫,,一般是多個(gè)項(xiàng)目共用一個(gè)主分支,,而針對(duì)項(xiàng)目共用主分支的代碼都可以在overlay目錄里開發(fā)、維護(hù)(overlay目錄所在遠(yuǎn)程分支為對(duì)應(yīng)項(xiàng)目的分支,,而不是當(dāng)前共用的主分支);然后提交到對(duì)應(yīng)的項(xiàng)目代碼分支,;

       1.Repo 相關(guān)腳本下載操作,,相關(guān)匹配完成后;下拉Repo管理的項(xiàng)目代碼:repo init -u gitserver:manifests.git -m xxx.xml (xxx.xml文件決定初始化的項(xiàng)目)-->repo sync--->創(chuàng)建xxx項(xiàng)目對(duì)應(yīng)的分支:repo start xxx --all 

         (--all意為將所有模塊都?xì)w為當(dāng)前xxx分支下)

       2. 查看當(dāng)前項(xiàng)目代碼所在的分支:repo branch,;

       3.查看當(dāng)前項(xiàng)目相應(yīng)目錄代碼所在的分支情況(可能共用主分支或者在自己的分支),,如查看framework/base下的代碼所在分支情況:執(zhí)行 cd framework/base 進(jìn)入base目錄-->執(zhí)行g(shù)it branch -a查看;如查看package/apps/Music系統(tǒng)應(yīng)用模塊所在的分支情況: 執(zhí)行cd package/apps/Music--->執(zhí)行g(shù)it branch -a,;

       4.刪除不用的本地分支:“repo abandon 分支名” (同“git branch -d 分支名”)

       5.自動(dòng)查找項(xiàng)目所在的分支(在沒執(zhí)行repo start xxx --all的情況下),,然后進(jìn)行切換:repo forall -c git checkout -b xxx 項(xiàng)目對(duì)應(yīng)的遠(yuǎn)程分支名(最好是本地分支和遠(yuǎn)程分支同名,除主分支外)

       6.Repo實(shí)現(xiàn)切換分支:執(zhí)行cd .repo/manifests--->執(zhí)行l(wèi)s查看項(xiàng)目對(duì)應(yīng)的xxx.xml文件--->執(zhí)行cd -回到主目錄--->執(zhí)行repo sync同步更新代碼--->執(zhí)行”repo start xxx(本地分支名) --all“創(chuàng)建相應(yīng)的本地分支(或者執(zhí)行"repo -c -p git checkout 本地分支  遠(yuǎn)程分支"指令),;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多