所有模塊創(chuàng)建一個(gè)分支, repo start test?
刪除所有模塊具體某個(gè)本地分支,無論是否merged:repo abandon test
刪除各個(gè)模塊具體分支,同時(shí)push到遠(yuǎn)程?repo forall -c "git push origin --delete test"
1奄薇、repo start <topic_name>
開啟一個(gè)新的主題驳阎,其實(shí)就是每個(gè)Project都新建一個(gè)分支。
repo start newbranchname .
?創(chuàng)建新的branch分支惕艳。 "." 代表當(dāng)前工作的branch 分支搞隐。
2、repo init -u <url> [OPTIONS]
repo init -u git://android.git.kernel.org/platform/manifest.git
repo init -u URL 用以在當(dāng)前目錄安裝 repository 远搪,會在當(dāng)前目錄創(chuàng)建一個(gè)目錄 ".repo" ?-u 參數(shù)指定一個(gè)URL劣纲, 從這個(gè)URL 中取得repository 的 manifest 文件。
在當(dāng)前目錄下初始化repo谁鳍,會在當(dāng)前目錄生生成一個(gè).repo目錄癞季,像Git Project下的.git一樣,-u指定url倘潜,可以加參數(shù)-m指定manifest文件绷柒,默認(rèn)是default.xml,.repo/manifests保? ? ? ? 存manifest文件涮因。.repo/projects下有所有的project的數(shù)據(jù)信息废睦,repo是一系列g(shù)it project的集合,每個(gè)git project下的.git目錄中的refs等目錄都是鏈接到.repo/manifests下的养泡。
repo init -u git://android.git.kernel.org/platform/manifest.git -m dalvik-plus.xml
可以用 -m 參數(shù)來選擇獲取 repository 中的某一個(gè)特定的 manifest 文件嗜湃,如果不具體指定,那么表示為默認(rèn)的 namifest 文件 (default.xml)
repo init -u git://android.git.kernel.org/platform/manifest.git -b release-1.0
可以用 -b 參數(shù)來指定某個(gè)manifest 分支澜掩。
3购披、repo manifest
可以根據(jù)當(dāng)前各Project的版本信息生成一個(gè)manifest文件
4、repo sync [PROJECT1...PROJECTN]
下載最新本地工作文件肩榕,更新成功刚陡,這本地文件和repository 中的代碼是一樣的。 可以指定需要更新的project , 如果不指定任何參數(shù)筐乳,會同步整個(gè)所有的項(xiàng)目歌殃。
如果是第一次運(yùn)行 repo sync , 則這個(gè)命令相當(dāng)于 git clone 哥童,會把 repository 中的所有內(nèi)容都拷貝到本地挺份。 如果不是第一次運(yùn)行 repo sync , 則相當(dāng)于 git remote update ; ?git rebase origin/branch . ?repo sync 會更新 .repo 下面的文件贮懈。 如果在merge 的過程中出現(xiàn)沖突, 這需要手動運(yùn)行 ?git ?rebase --continue
5优训、repo status
顯示 project 中每個(gè)倉庫的狀態(tài)朵你,并打印倉庫名稱。
查看本地所有Project的修改揣非,在每個(gè)修改的文件前有兩個(gè)字符抡医,第一個(gè)字符表示暫存區(qū)的狀態(tài)。
-no changesame in HEAD and index
Aaddednot in HEAD, in index
Mmodifiedin HEAD, modified in index
Ddeletedin HEAD, not in index
Rrenamednot in HEAD, path changed in index
Ccopiednot in HEAD, copied from another in index
Tmode changedsame content in HEAD and index, mode changed
Uunmergedconflict between HEAD and index; resolution required
每二個(gè)字符表示工作區(qū)的狀態(tài)?
lettermeaningdescription
-new/unknownnot in index, in work tree
mmodifiedin index, in work tree, modified
ddeletedin index, not in work tree
?6早敬、repo prune <topic>?
刪除已經(jīng)merge的分支
7忌傻、repo abandon <topic>
刪除分支,無論是否merged
8搞监、repo branch或repo branches
查看所有分支
9水孩、repo diff
查看修改
repodiffplatform/build platform/bionic? ---只查看其中兩個(gè)項(xiàng)目
10、repo upload
上傳本地提交至服務(wù)器
11琐驴、repo forall[PROJECT_LIST]-c COMMAND
對指定的Project列表或所有Project執(zhí)行命令COMMAND俘种,加上-p參數(shù)可打印出Project的路徑。
12绝淡、repo forall -c 'git reset --hard HEAD;git clean -df;git rebase --abort'
repo forall –c ‘git remote add korgssh://xiong@172.16.31/$REPO_PROJECT.git’
這個(gè)命令可以撤銷整個(gè)工程的本地修改宙刘。
13、repo forall -c
遍歷所有的git倉庫牢酵,并在每個(gè)倉庫執(zhí)行-c所指定的命令(被執(zhí)行的命令不限于git命令悬包,而是任何被系統(tǒng)支持的命令,比如:ls 馍乙、 pwd 布近、cp 等 。
14潘拨、repo forall -c git checkout -b? 本地分支名稱(自定義)? 服務(wù)器分支名稱
下載新的分支
15吊输、repo forall -c git checkout your_branch
切換到另外一個(gè)分支
16、repo forall -c git branch -D? 分支名稱
刪除分支
17铁追、repo forall -c git git reset --hard HEAD
丟棄修改
18季蚂、repo ?forall?-r kernel/linux-3.10.y bootable/bootloader/uboot-2015.04??-c git reset --hard HEAD
對指定的倉進(jìn)行操作,-r后跟倉名
19、repo forall -p -c git branch? ?
repo執(zhí)行的時(shí)候加上-p參數(shù)就可以在遍歷到每個(gè)倉庫的時(shí)候先打印出當(dāng)前的pwd,然后再繼續(xù)執(zhí)行-c所指定的命令扭屁。
repo forall –c ‘echo$REPO_PROJECT’
添加環(huán)境變量算谈。
20、repo foreach [ project-lists] -c command
?? ? ? 對每一個(gè) project 運(yùn)行 command 命令
21料滥、repo download ?target revision
?? ? ? ?下載特定的修改版本到本地然眼, 例如: ?repo download pltform/frameworks/base 1241 下載修改版本為 1241 的代碼
22、repo remote
設(shè)置遠(yuǎn)程倉庫
repo remote add ? […]
repo remote rm? […]
repo remote add orgssh://172.16.1.31/git_repo
這個(gè)指令是根據(jù)xml文件添加的遠(yuǎn)程分支葵腹,方便于向服務(wù)器提交代碼高每,執(zhí)行之后的build目錄下看到新的遠(yuǎn)程分支org
repo? remotermorg
刪除遠(yuǎn)程倉庫
23、repo push?
向服務(wù)器提交代碼
repo push org
repo push <remotename> [--all |<project>…]
repo會自己查詢需要向服務(wù)器提交的項(xiàng)目并提示用戶践宴。
24鲸匿、repo manifest
顯示manifest文件內(nèi)容
repo manifest –o android.xml
1.repo forall命令
# repo forall -help
# repo forall -c: 此命令遍歷所有的git倉庫,并在每個(gè)倉庫執(zhí)行-c所指定的命令阻肩,被執(zhí)行的命令不限于git命令带欢,而是任何被系統(tǒng)支持的命令,比如:ls, git log, git status等
2.repo forall -c使用
? # 切換分支
? # repo formal -c git checkout dev_test
? # 刪除分支
? # repo forall -c git branch -D dev_test
? # 丟棄分支
? # repo forall -c git git reset —hard 提交ID(或最原始:HEAD)
? # repo forall -r framework/base/core -c git reset —hard 提交ID(或最原始HEAD)
轉(zhuǎn)自:https://www.cnblogs.com/zhangjiansheng/p/7965546.html