天天看點

repo 和git的用法

1. 伺服器版本下載下傳:

repo init -u [email protected]:i700t_60501010/platform/manifest.git-b froyo_almond -m M76XXTSNCJNLYA60501010.xml

repo sync

repo forall -c git checkout --track origin/i700t_60501010 -b[你的本地分支]

或者:

git clone [email protected]:6120_gingerbread/Arm9-6120.git

git checkout --track origin/arm9_6120 -b [你的本地分支名]

2. 伺服器新加倉庫同步:

請按如下步驟取得Lanucher_wpon的代碼:

1:~> cd I700T/.repo/manifest

2: I700T/.repo/manifest> git pull --rebase

3: I700T/.repo/manifest> cd ../..

4: I700T> repo syncplatform/packages/apps/Launcher_wpon

5:I700T> cd packages/apps/Launcher_wpon

6:I700T/packages/apps/Launcher_wpon> 

7:git checkout --track origin/froyo_almond -b [你的本地分支]

3. 上傳本地修改到伺服器

repo forall -c git pull --rebase      和伺服器同步(要上傳代碼前,一般先進行此操作)

git add .    或git add 檔案名         添加目前倉庫修改的檔案

git commit -m "..."                   在引号中添加你的修改記錄

git push origin  本地分支名:froyo_almond     上傳本地修改的代碼

4. 設定一些預設的全局變量,對所有工程代碼有效

git config --global user.name yourmail

git config --global user.email yourmail

git config --global push.default tracking    這樣後續git push 後面不用帶參數

5.檢視修改記錄

git log                    本地倉庫修改記錄

repo forall -c git log --since="2011-04-19" --until="2011-04-21"  按條件檢視工程所有倉庫修改記錄

repo status             檢視工程中所有倉庫的修改狀态(包括檔案位置)

git status                檢視倉庫修改狀态

6. 分支相關

git branch               檢視本地branch

git branch -r            檢視遠端branch

git branch -a            檢視所有branch

git branch -D  (-d)  (branchname)    删除branch

cat .git/config     可以檢視本地branch一些資訊

7. 修改恢複相關

git checkout filename1  filename2 ...         取消本地修改,和伺服器同步

git stash  

git stash apply        先stash本地修改,然後執行git pull--rebase同步,最後再APPLY恢複自己的修改

git reset --soft head_commit 恢複到最後一次commit,保持代碼修改

git reset --hard commit   恢複到指定一次commit,放棄之前所有修改

#回退a.py這個檔案的版本到上一個版本  

git reset HEAD^ a.py 

git reset commitNO filename

8. 本地某倉庫出問題了,不好鬧騰時,删除之,并重新同步跟蹤

project_folder/vendor/qcom$ rm -rf proprietary/                     進到相應目錄,删除之

project_folde$ repo sync platform/vendor/qcom/proprietary      重新reposync,後面路徑名稱可檢視:

               gedit .repo/manifest.xml

git branch -a   ----列舉所有BRANCH

git branch -D 700_arm11_server

git branch -D 700_arm11_server_wifi --删掉所有本地branch

git checkout --track origin/froyo_almond -b 700_arm11_server  然後track遠端branch,重新建立本地分支

9.tag的使用

git tag [tag_name][version],在對應版本上(一般用change的SHA1),建立tag 

git tag -l 列出目前tag 

git tag -d [tag_name] 删除tag 

有了tag以後,可以使用git checkout [tag_name] -b[branch_name]來檢出對應tag時刻的代碼。也可以用tagname來實作diff等功能。 

10. patch的使用

git diff filename1 filename2 ...               修改位置對比,檢視源碼

git diff > xxx.patch                            将修改的地方打成一個patch

git apply xxx.patch                            将patch打上

11. 後續有用到的指令繼續添加

git revert 是撤銷某次送出。git reset –hard,才是退回到以前的版本

git reset --soft commitNum     儲存代碼修改的reset,但這個時候無法使用git diff 進行比較修改的檔案,必須:

git reset filename filename    這樣就可以git diff檢視

git diff ffd98b291e0caa6c33575c1ef465eae661ce40c9b8e7b00c02b95b320f14b625663fdecf2d63e74c 檢視某兩個版本之間的差異

git diff ffd98b291e0caa6c33575c1ef465eae661ce40c9:filenameb8e7b00c02b95b320f14b625663fdecf2d63e74c:filename檢視某兩個版本的某個檔案之間的差異

  Git 指令别名

$ git config –global alias.co checkout // co将會成為checkout的别名

$ git config –global alias.br branch

$ git config –global alias.ci commit

$ git config –global alias.st status

$ git config –global user.name “username”

$ git config –global user.email [email protected]

本文作者: chaplinthink, 關注領域:大資料、基礎架構、系統設計, 一個熱愛學習、分享的大資料工程師