1. 配置git環境變數
git config –global user.name yourname git config –global user.email yourname@gmail.com git config –gloval core.editor vim
可以用cat ~/.gitconfig來看看是否配置正確。
2. 建立git分支
如建立origin/android-4.0.4_r1.2分支,在工程目錄下輸入:
git checkout -b android-4.0.4_r1.2 origin/android-4.0.4_r1.2git checkout aosp/xxxx // 切換分支到aosp/xxx
3. 增加、刪除和修改檔案
git add path/file1, path/file2 ... // 增加和修改git checkout path/file // 放棄修改git rm path/file // 刪除檔案
使用git status查看當前分支下檔案修改狀態
4. 提交修改
git commit // 提交命令,輸入對應的log說明git commit --amend // 提交命令,和上面命令區別:這次提交和上次的提交本質上是一個工作
提交之前最好同步下代碼:
git fetch aospgit rebase aosp/android-4.0.4_r1.2
git fetch相當於是從遠程擷取最新版本到本地,不會自動merge。更新合并可以使用下面命令:
git fetch origin mastergit log -p master..origin/mastergit merge origin/master
上述命令首先從遠程origin的master主分支下載最新的版本到origin/master分支上,然後比較本地的master分支和origin/master分支的差別,最後進行合并。
上述過程其實可以用以下更清晰的方式來進行:
git fetch origin master:tmpgit diff tmp git merge tmp
5. push提交的code到git 伺服器
git push aosp HEAD:refs/for/android-4.0.4_r1.2
其它
1)如何查看repo庫上分支版本:
git --git-dir=.repo/manifests/.git/ branch -a
2)如何放棄本地修改:
git remote updategit reset --hard <BRANCH>
如:
git reset --hard origin/android-4.0.4_r1.2
3)如何查看某個檔案修改曆史
切換的檔案所在目錄,輸入如下命令:
git log --pretty=oneline 檔案名稱
接著終端會按照行列出修改曆史,每一行最前面的有一長串數字就是每次提交形成的雜湊值,再根據雜湊值查看具體修改記錄:
git show 雜湊值
4)如何查看某個提交log的修改內容
首先通過 git log查看目前的提交,根據Change-Id通過git diff命令來比較修改內容:
git diff change-id-1 change-id-2 // 比較兩個change-id之間的差異,如不指定第二個change-id,則跟當前進行比較。
5) 更新代碼併合並本地修改
git pull aosp android-4.2.2_r1
相當於是從遠程擷取最新版本並merge到本地,上述命令其實相當於git fetch和git merge。在實際使用中,git
fetch更安全一些,因為在merge前,我們可以查看更新情況,然後再決定是否合并。