涉及android源**的工作需要用到的git和repo工具。多數情況下我們可以用git工具代替repo,或者兩者混用組合成更複雜的命令。而repo工具可以使android的網路操作更加簡潔。
git是乙個開源版本管理系統,旨在處理各種知識庫發布的大型專案。一般來說,我們可以使用git進行本地操作,比如本地分支化、提交、對比和編輯。android專案中乙個挑戰是如何支援外部的群體(愛好者社群以及大型oem廠商)。如果想讓元件可替代、延長生命週期,我們必須選擇乙個發布式版本管理系統,所有我們選擇git工具。
一、版本管理基本流程
與知識庫互動的基本流程如下:
1、建立新的分支——repo start
2、編輯**檔案
3、stage檔案更改——git add
4、提交更改——git commit
5、提交更改到review伺服器——repo upload
二、任務處理
下面詳細介紹了如何使用repo和git命令。
1、同步本地客戶端
同步所有的工程檔案——repo sync
同步特定的工程檔案——repo sync project0 project1 project2 ...
2、建立分支
每當開始編輯檔案比如開始修改bug和新增新的功能,需要在本地建立特定的分支。分支並不是原始檔案的拷貝,它作為特定提交的標示,該標示建立本地分支並在分支間進行輕量級切換,分支可以隔絕乙個方面的更改。
建立分支——repo start branch_name
驗證新分支的有效性——repo status
3、分支使用
分配分支到特定工程——repo start branch_name project
本地環境中切換分支——git checkout branch_name
列出所有分支——git branch or repo branches
4、staging檔案
預設情況下,git工具提示但並不跟蹤工程的更改,為了通知git儲存**的變化,我們必須commit**,即「staging」。
stage檔案更改——git add
該命令可以接受任何檔案和工程目錄,git新增檔案到git知識庫,並且stage檔案更改、刪除的記錄。
5、瀏覽客戶端狀態
展示檔案狀態——repo status
展示未提交的檔案編輯——repo diff
6、提交更改
git中commit是版本管理的基本單元,包含了工程的目錄結構和檔案內容。
建立commit——git commit
執行該命令後editor中彈出commit提示資訊,最好能夠提供有益的幫助資訊。如果沒有新增log資訊,該次commit提交會被遺棄。
7、提交更改到gerrit
upload之前更新最新的版本——repo sync
接著提交**——repo upload
之後呈現我們提交的更改,並提示我們選擇分支。
8、處理**衝突
提交**時如果遇到衝突,需要執行以下操作:進入相關的工程目錄,針對衝突的檔案執行git add和git commit命令,恢復更改。如下:
git add .
git commit
git rebase --continue
恢復更改後再次重複整個更新:
repo sync project0 project1 ... projectn
如果本地又對剛剛提交的**進行了修改,提交時可以直接覆蓋上次的提交,執行如下命令:
git add files
git commit --amend
repo upload
9、清除客戶端檔案
merge**到gerrit之後,更新本地的工作目錄:
repo sync
安全清除陳舊的分支執行以下命令:
repo prune
想恢復**到以前的分支,可以執行以下命令:
git log
git reset hard
10、刪除客戶端**
由於**所有的**資訊儲存在本地,我們僅需要刪除目錄即可完成:
rm -rf working_directory
刪除本地**後將會永久的刪除所有提交的更改。
三、git和repo流程表
原文參考:
基於Repo和Git的版本管理
與知識庫互動的基本流程如下 1 建立新的分支 repo start 2 編輯 檔案 3 stage檔案更改 git add 4 提交更改 git commit 5 提交更改到review伺服器 repo upload 二 任務處理 下面詳細介紹了如何使用repo和git命令。1 同步本地客戶端 同步...
基於Repo和Git的版本管理
git branch upload 工具android merge 與知識庫互動的基本流程如下 1 建立新的分支 repo start 2 編輯 檔案 3 stage檔案更改 git add 4 提交更改 git commit 5 提交更改到review伺服器 repo upload 二 任務處理 ...
repo管理git倉庫 回退版本
1.repo回退所有git倉庫到指定日期之前 repo forall c commitid git log before 2019 01 01 07 00 1 pretty format h git reset hard commitid 2.repo回退到某tag 先去隨意git倉庫下,git t...