「这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战」
Git常用命令
git status、git diff 和git diff –cached 的区别: git diff 只在git add之前使用有效,如使用git add后,那么此命令输出为空 git diff –cached 这个命令在git add之后在git commit之前有效 git status 只在git commit 之前有效,表示有哪些文件发生改动 git diff HEAD ~ 1..HEAD 显示最近两个提交的改动 Git log git log –N 显示当前分支的最新的N个提交历史 git log –p 显示该文件所有的更改历史 Git branch git branch 显示本地分支 git branch –r 显示远程分支 恢复更改 git reset HEAD 将暂存状态的文件更改为未暂存,更改不改变 git checkout -- 将更改的未暂存文件恢复为未更改状态 git reset –hard 将所有未commit的更改文件恢复为未更改状态 git reset HEAD~1 将最新的commit 置为未暂存状态 repo manifest 查看manifest 文件
本地commit后,增加新的内容到该commit, 如何处理? 1、在该分支上增加新的内容 2、git add添加此文件 3、补充提交(git commit –amend –m ”commit message”) Push到gerrit后,要增加新的内容到此change-id,如何处理? 1 在该分支上增加新的内容 2 git add添加此文件 3 补充提交(git commit –amend –m ”commit message”) 4 对此change-id增加patch git push ssh://yourname@192.168.100.139:29418/projectname HEAD:refs/for/ remotebranch 5 gerrit在原来change-id上增加了一个补丁
repo安装配置
方法一
下载repo 在任意新目录下运行 git clone git://192.168.100.149/tools/repo.git -b stable 会下载到一个文件夹,将文件夹中 repo 文件 sudo mv repo /usr/bin 下 $ 加一下权限 sudo chmod a+x usr/bin/repo
方法二
由于我们是通过repo来拉取android源码的,还得安装配置repo
git clone aosp.tuna.tsinghua.edu.cn/git-repo/
chmod a+x git-repo/repo
添加repo(路径目录如:~/git-repo/repo)到PATH环境变量
export PATH=~/git-repo:$PATH
修改~/bin/repo 中的REPO_URL 字段,将REPO_URL替换为清华镜像地址,以避免下载android源码时可能出现的无法连接到 gerrit.googlesource.com问题。
REPO_URL = 'mirrors.tuna.tsinghua.edu.cn/git/git-rep…'
方法三
1、根目录下创建.bin文件夹
mkdir ~/.bin
2、配置为临时环境变量(也可配置为永久的)
PATH=~/.bin:$PATH
3、下载repo
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
4、将git-repo中的repo文件复制到 1 创建的.bin目录中
cd git-repo
cp repo ~/.bin/
5、修改权限
chmod a+x ~/.bin/repo
6、创建同步源码的工作目录
mkdir project
7、在工作目录中创建.repo目录
cd project
mkdir .repo
8、将下载的git-repo拷贝到.repo下,并改名为 repo
9、更改环境变量
vi ~/.bashrc
export PATH="~/.bin/repo:$PATH"
安装curl
- curl :官方一点的说法就是开源的文件传输工具。类似迅雷,或者wget(这个没听说过?)。其实这个工具可以用wget来代替。。。。Ubuntu在默认的情况下是不安装curl的,所以我们需要自己动手安装:
sudo apt-get install curl -y
源码下载
接下来我们初始化仓库(这是啥?不懂别问,继续。):
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
(接下来这一步就是从服务器取代码了,如果你只想下载特定的android版本,可以使用如下命令:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-11.0.0_r20
Android 版本可以参考这个网址
但我们下载全部代码,运行命令:
repo sync
repo安装遇到问题
repo报错error: Entry 'drivers/amlogic/tvin/vdin.c' not uptodate. Cannot merge.
git stash
$ git pull
$ git stash pop
repo sync单独同步一个或多个仓库
通过查看manifest中的parh地址 可以单独或多个进行同步
.repo/manifests/default.xml//默认
manifest.xml//
Python版本问题
切换python默认版本
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
# update-alternatives --list python
# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
# update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1
# update-alternatives --config python
update-alternatives --config python
ubuntu安装JDK8 和 Python2.7
repo下载问题
使用别人公钥
需要修改公钥文件权限
sudo chmod 600 id_rsa*
生成Git公钥
ssh-keygen -t rsa -C "XXX@XXX.com"
按照提示完成三次回车 公钥生成在根目录.ssh文件中