1. 配置git环境变量
git config –global user.name yourname git config –global user.email [email protected] 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.2 git 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 aosp git rebase aosp/android-4.0.4_r1.2
git fetch相当于是从远程获取最新版本到本地,不会自动merge。更新合并可以使用下面命令:
git fetch origin master git log -p master..origin/master git merge origin/master
上述命令首先从远程origin的master主分支下载最新的版本到origin/master分支上,然后比较本地的master分支和origin/master分支的差别,最后进行合并。
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp git 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 -a2)如何放弃本地修改:
git remote update git 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前,我们可以查看更新情况,然后再决定是否合并。
6) 重置/回退本地的提交
git reset --hard HEAD^ // 恢复最近一次提交
git reset --hard HEAD~3 // 恢复最近的3次提交