repo git基础命令操作

repo git 基础命令操作(持续更新)

git


初始化git

  • git init

  • git push

  • git pull

  • git rm file(从缓存区和工作区删除)

  • git rm file –cached(不从工作区删除)

分支操作

  • git branch 分支名(创建分支)
  • git checkout 分支名(切换分支)
  • git branch -a (罗列出所有分支,包含远程分支)
  • git checkout -b (branchname) (创建并切换)
  • git branch(列出分支)
  • git branch -d 分支名(删除分支)
  • git merge newtest(将newtext分支合并到当前分支上)

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录

编辑提交

  • git add

  • git commit -m “”(建议不要用-m)

  • git commit -a(add and commit)

  • git commit --amend(重新对commit的-m后面的注释命名)

版本回退

  • git checkout – file(将改动还原)
  • git reset HEAD file(将add还原删除add动作(将缓存中的移除) 后面参数都不跟,默认都移除)
  • git reset --mixed HEAD^ (不删除工作空间改动代码,撤销commit,并且撤销git add)
  • git reset --soft HEAD^(不删除工作空间改动代码,撤销commit,不撤销git add)
  • git reset --hard HEAD^(删除工作空间改动代码,撤销commit,撤销git add .
    注意完成这个操作后,就恢复到了上一次的commit状态)HEAD^ 代表上一个版本

解决冲突

  • git stash(将本地的改动缓存起来,这样就变成了一个干净的仓库)
  • git stash pop(将改动缓存起来的释放出来)

故,更新代码前可以先将本地的改动缓存起来,然后再Git pull,最后 将缓存的释放出来。有冲突手动解决冲突。

查看信息

  • git blame file(查看文件每一行的改动)
  • git log(查看一个仓库下每一个提交)
  • git show commitid(查看具体改动)
  • git log --pretty=oneline(查看提交信息)
  • git config --list (配置信息罗列)
  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff –cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff –stat

高级

  • tag

repo(管理git)

1.还原改动到具体时间点以前

repo forall -c 'commitID=`git log --before "2018-01-05 12:00" -1 --pretty=format:"%H"`; git reset --hard $commitID'
  1. 提交所有仓库的改动
  • 拉代码

    • export PATH="~/bin:$PATH"

    • repo init -u ssh://172.20.5.245/mtk/manifest -b ANDROID_O_5658 (拉代码)

    • repo sync

  • 更新代码(也可直接repo sync)

    • repo forall -c git reset --hard
    • repo forall -c git clean -df
    • repo forall -c git pull
  • 提交上传

    • repo forall -c git add .

    • repo forall -c git commit -m “提交”

    • repo upload

  • 分支

    • repo start AndroidTV_N --all(给所有git仓库开一个分支)
    • repo branch 查看当前分支
    • repo abandon 分支名 (删除分支)
    • repo checkout Androidbranch 切换到Androidbranch分支上
    • repo forall -c git status > status-1.txt(将status的重定向到一个文件里面去)
    • find release -name *.h -exec rm {} \;(删除目录中所有 以.h结尾的文件)

3.版本记录追溯

版本记录(按需,一般版本集成人员需要掌握)
为了方便记录版本,用与追溯问题。在每次发布版本时需要制作一个 xml,来记录所有仓库的状态。

①制作 xml:在当前环境下执行 repo manifest -r -o .repo/manifests/151126.xml。其中 xml
名字以当前日期命名方便查看。151126 将记录在工厂菜单作为系统 svn 版本号。该 xml 会
记录所有仓库当前的 commit id.

②提交 xml 到 gerrit:
cd .repo/manifests
git add 151126.xml
git commit -m “log”
git push origin HEAD:refs/for/branch
注意:branch 一定要跟你 repo init -u xxx -b branch 的分支一致,否则你将提交
到别的分支上去了。代码审核人员一定要注意查看。

③导入 xml:
当要切换到某个版本环境时,如果本地已经有代码了。
直接:
repo init -m 151126.xml
repo sync

如果还没下载过代码,可以在初始化时 repo init -u $Url -b $Branch -m 151126.xml

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假装多好123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值