git and repo环境配置

1,010 阅读3分钟

「这是我参与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

www.cnblogs.com/slider/arch…

repo sync单独同步一个或多个仓库

blog.csdn.net/weixin_3964…

通过查看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

www.cnblogs.com/dancesir/p/…

# 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

www.cnblogs.com/varden/p/13…

ubuntu安装JDK8 和 Python2.7

www.manongjc.com/detail/16-r…

repo下载问题

使用别人公钥

需要修改公钥文件权限

sudo chmod 600 id_rsa*

生成Git公钥

ssh-keygen -t rsa -C "XXX@XXX.com"

按照提示完成三次回车 公钥生成在根目录.ssh文件中