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, 關注領域:大資料、基礎架構、系統設計, 一個熱愛學習、分享的大資料工程師