repo和git使用小结

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 -a

2)如何放弃本地修改:

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次提交

你可能感兴趣的:(repo和git使用小结)