gerrit常⽤命令笔记
repo使⽤笔记:
rsync -avr .repo [username]@yourServerIP:/home/ 同步.repo配置到⽬标服务器绝对路径下
repo sync -l 同步完上⾯.repo配置后使⽤此命令同步代码
repo list -nr sboot 列举sboot仓库路径
repo list dtv/fusion-bsp2/mstar/mboot/sboot 查仓库映射关系
git使⽤笔记:
⼀、新服务器git环境配置
git config --global user.name "[username]" 配置⽤户名
git config --ail "[emailAddress]" 配置邮箱
ssh-keygen ⽣成ssh-key,拷贝~/.ssh/id_rsa.pub内容到gerrit上注册
⼆、提交修改部分
1、git diff [filename] 显⽰本地与远程git库中⽂件差异
-b PATH,忽略空格,显⽰差异
2、git stash,保存⼯作区修改的现场,以得到⼲净的代码
-- pop,恢复保存的⼯作区修改,继续未完成的⼯作
-- list,查看stash列表
-- clear,清除所有的stash history
3、git status,查看⼯作⽬录状态,包含当前分⽀信息及修改信息等。git add xxx或git add -i,添加到commit暂存区(如果add之后再次修改相同⽂件,需要再次add,否则第⼆次修改的内容不会被放到暂存区)
4、git reset HEAD <file>...,撤出暂存区(与add相反)
5、git commit -m "Comment Something"或者git commit -F xxx.log,添加版本注释,并提交暂存区到本
地版本库
6、git commit --amend 在当前commit上修改提交内容
7、git reset --soft HEAD^,回滚最近⼀次commit,重新修改后,可以再次commit。
8、git push origin master,推送本地版本修改到远端分⽀(也可⽤第14点⽅法)
PS:在不知道远端服务器名称和当前分⽀的情况下使⽤以下命令进⾏推送
git branch -avv 查看远端服务器名称和分⽀名
git push origin-server HEAD:refs/for/master 将当前master分⽀的修改推送到远端origin-server服务器
⼆、其他
1、git checkout master,切换到master分⽀。
git checkout -b dev,创建d并切换到dev分⽀。
2、git merge --no-ff -m "merged bug fix 101" dev,整合dev分⽀到当前分⽀
3、git branch -d dev,删除dev分⽀
4、git push origin dev:master,推送本地dev分⽀(commit版本)到远端master分⽀
5、git pull origin master:dev,从远端master分⽀取回合⼊本地dev分⽀
6、git remote show origin,显⽰本地remote与远端的关系
7、git remote prune origin,移除本地remote仍记录,但远端已不存在的分⽀(也可⽤第19点⽅法)
8、git reset --hard origin/master,放弃本地修改,reset之后所有本地修改都会被清除
9、git fetch -p,在fetch之后删除掉没有与远端分⽀对应的本地分⽀
10、git log -p -2,显⽰最近两个版本的详细修改内容
11、git log --name-only,显⽰log及对应修改的⽂件(不显⽰具体内容,只显⽰⽂件名)
12、git remote rm origin,去掉origin定义
13、git remote add origin username@yourServerIP:DirPathOrGitFile,增加origin定义
git设置用户名和邮箱14、git clone username@yourServerIP:DirPathOrGitFile
15、git -C [Git Local PATH] log,切换到包含git的⽬录下,执⾏log命令
16、git remote set-head origin remote_branch_xxx,切换远程分⽀到remote_branch_xxx
17、git push origin HEAD:refs/for/CTV_Baseline_828,gerrit审核分⽀
18、git status -uno PATH,或git status --untracked-files=no PATH,显⽰指定路径git修改,不包含未跟踪⽂件
19、git cherry-pick [commit-id or Range],可将指定版本的修改merge到当前分⽀,并⾃动commit。
20、git log remotes/xxx,可指定远端分⽀,查看log。
21、git diff -b PATH,忽略空格,显⽰差异
22、git show [TAG] -s,显⽰tag对应的详细信息,并忽略详细的⽂件修改。
23 --name-only commit 只显⽰指定commit修改的⽂件名。
24、git clean -dfx,清除所有⽆版本记录的⽂件夹、⽂件,包含ignore。
25、git add -f -A .,添加当前⽬录所有⽂件修改到缓冲区,包含ignore⽂件
26、git status --ignored,显⽰所有⽂件状态,包含ignore⽂件
27、git archive -o latest.zip HEAD,将HEAD的完整版本压缩打包
28、git branch –m oldname newname,重命名分⽀,如果newname已存在将提⽰后取消,若把-m改为-M则⽆视,直接覆盖。
29、git gc,压缩git快照⽂件,节省磁盘空间
30、git log --pretty=fuller --name-only,显⽰author和committer全部信息。
31、git push aosp :refs/tags/CTV_Baseline_338_Develop,删除远程Tag
32、git tag -a CTV_638_5.04_OK -m "CTV_638_5.04_OK",在本地打Tag
33、git push aosp --tags,将本地Tag推到远程aosp服务器
34、git reflog 显⽰所有改变HEAD指针的操作记录及其hashID
三、打patch部分
1、⽣成patch命令
$ git format-patch HEAD^ #⽣成最近的1次commit的patch
$ git format-patch HEAD^^ #⽣成最近的2次commit的patch
$ git format-patch HEAD^^^ #⽣成最近的3次commit的patch
$ git format-patch HEAD^^^^ #⽣成最近的4次commit的patch
$ git format-patch <r1>..<r2> #⽣成两个commit间的修改的patch(包含两个commit. <r1>和<r2>都是具体的commit号)
$ git format-patch -1 <r1> #⽣成单个commit的patch
$ git format-patch <r1> #⽣成某commit以来的修改patch(不包含该commit)
$ git format-patch --root <r1> #⽣成从根到r1提交的所有patch
$ git diff commitID1 commitID2 > 0001-limit-log-function.patch #diff命令⽣成patch
2、检查patch
$ git apply --stat 0001-limit-log-function.patch # 查看patch的情况
$ git apply --check 0001-limit-log-function.patch # 检查patch是否能够打上,如果没有任何输出,则说明⽆冲突,可以打上
(注:git apply是另外⼀种打patch的命令,其与git am的区别是,git apply并不会将commit message等打上去,打完patch后需要重新git add和git commit,⽽git am会直接将patch的所有信息打上去,⽽且不⽤重新git add和git commit,author也是patch的author⽽不是打patch的⼈)
3、am命令打patch
$ git am 0001-limit-log-function.patch # 将名字为0001-limit-log-function.patch的patch打上
$ git am --signoff 0001-limit-log-function.patch # 添加-s或者--signoff,还可以把⾃⼰的名字添加为signed off by信息,作⽤是注明打patch的⼈是谁,因为有时打patch的⼈并不是patch的作者
$ git am ~/patch-set/*.patch # 将路径~/patch-set/*.patch 按照先后顺序打上
$ git am --abort # 当git am失败时,⽤以将已经在am过程中打上的patch废弃掉(⽐如有三个patch,打到第三个patch时有冲突,那么这条命令会把打上的前两个patch丢弃掉,返回没有打patch的状态)
$ git am --resolved #当git am失败,解决完冲突后,这条命令会接着打patch
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论