repo和git使用小结

来源:互联网 发布:淘宝类目优化 编辑:程序博客网 时间:2024/05/29 16:27

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前,我们可以查看更新情况,然后再决定是否合并


6) 重置/回退本地的提交

git reset --hard HEAD^  // 恢复最近一次提交

git reset --hard HEAD~3  // 恢复最近的3次提交