apt-get install git-all
git config --global user.name “wanghui”
username 设置
git config --global user.email
邮箱账号设置
git --version
git
git --help
Git
git status [ file_name ]
查看指定文件状态(红色:在工作区新增、修改、删除文件;绿色:提交到缓存区文件)
git status
查看所有文件状态
工作区创建修改 ——> add ——> 从工作区添加到暂存区 ——> commit ——> 暂存区提交至服务器端
工作区 ——>
暂存区
git add [ file1]
[ file2 ] …
添加指定文件到暂存区
git add [ dir ]
添加指定目录到暂存区,包括子目录
git add .
添加当前目录的所有文件到暂存区
git rm [ file_path ]
删除暂存区/分支上的文件,同时工作区也会删除此文件
git rm --cached [ file_path ]
删除暂存区/分支上的文件,但是本地需要该文件,push前重新add即可有该文件
暂存区 ——>
本地仓库/版本库
git commit -m '该次提交说明 ’
将暂存区 ——> 资源库(版本库)
git reset HEAD [ file_name ]
移除不必要的,但是添加到暂存区文件
git reset HEAD^
去掉上一次的提交(直接变成 add 之前的状态)
git reset --soft HEAD^
去掉上一次的提交(变成 add 之后,commit 之前的状态)
git fetch [ remote ]
下载远程仓库的所有变动
git remote -v
显示所有远程仓库
git remote show [ remote ]
git remote add [ short_name]
]
显示某个远程仓库的信息
git pull [ remote]
[ url
[ branch ]
增加一个新的远程仓库并命名
取回远程仓库的变化,并与本地分支合并
git push [remote] [ branch ]
上传本地分支到远程仓库
git push [ remote ] --force
强行推送当前分支到远程仓库,即使有冲突
git push [ remote ] --all
推送所有分支到远程仓库
显示所有本地分支
git branch -r
查看远程分支
git branch -a
显示所有分支(本地+远程)
git checkout branch_name
切换到指定分支,并更新工作区
git checkout -
切换到上一个分支
git checkout -b branch
新建一个分支,并切换到该分支
git branch branch_name
新建一个分支,但仍停留在当前分支
git branch branch commit
新建一个分支,指向指定的 commit
git branch --track branch remote_branch
新建一个分支,与指定的远程分支建立追踪关系
git branch --set-upstream branch remote-branch
建立追踪关系,在现有分支与指定的远程的分支之间
git merge branch
合并指定分支到当前分支
git cherry-pick commit
选择一个commit,合并至当前分支
git branch -d <分支名>
删除分支
git push origin --delete branch_name
删除远程分支
git branch -dr remote/branch
删除远程分支
git status
显示有变更的文件
git log
显示当前分支的版本历史
git log --stat
显示commit历史,以及每次commit发生变更的文件
git log -S [ keyword ]
根据关键词,搜索提交历史
git log -p [file]
diff
git diff
(存在更改的文件更改部分内容)
git reflog
·repo
1.repo基本命令
1.1 repo基本概念
(1)repo:管理N个git仓库的工具,用于下载、管理Android项目的软件仓库;
(2)manifest.xml: 该脚本用于记录有哪些git仓库需要一起下载下来的,组成一个完整的项目;
(3)project: 是git仓库的组成单元;
1.2 repo init命令
repo init -g all -u ssh://wanghui23@git.mioffice.cn:29418/platform/manifest.git -b dev -m bsp-taoyao-r.xml --repo-url=ssh://wanghui23@git
.mioffice.cn:29418/tools/repo.git --no-repo-verify
-u [manifest URL]
指定 manifests 远程git仓库的 URL,manifests库是整个项目的清单文件;指定 manifests 远程git仓库的 URL,
manifests库是整个项目的清单文件;
-b [btanchname]
manifest.xml 相应的 branch 分支;
-m [manifest name(bsptaoyao-r.xml)]
指定所需要的manifests库中的清单文件;
–repo-url=[URL]
设定repo的版本地址;
–no-repo-verfify
在下载repo库时,会对源码进行检查;设定不要对repo中的里程碑签名进行严格验证
===> 本地会在当前目录新建 .repo 子目录
1.3 repo sync
-c
当前分支
-j jobs
线程
–no-tags
不获取tag
repo start
repo start 创建分支
repo checkout -b <分支名> 切换并创建分支
repo abandon<分支名>
删除指定分支
repo upload 向Gerrit提交
repo
repo
repo
repo
upload
upload
upload
upload
. ——点不能省略,请配合repo start branch_name 使用,当前仓库提交change到gerrit上
–cbr . ——当前仓库有多个分支时,仅提交当前指向的分支的change到gerrit上,其他分支忽略
-d . —— 提交一个draft到gerrit上,draft的概念请参考 新版Gerrit使用说明 中的 提交一个草稿draft 部分
-t . ——提交change的同时,会将你的本地branch name作为该change的topic
4.repo status 显示当前分支状态