zoukankan      html  css  js  c++  java
  • gerrit管理下的git代码提交小技巧


    1、提交代码
    git checkout targetbranch 切换至目标分支
    git pull origin targetbranch 拉取目标分支最新内容
    git add 修改文件
    git commit -m “修改内容:xxxxx”
    git push origin HEAD:refs/for/targetbranch

    2、修改代码后发现所在分支不是目标分支怎么办?
    修改代码的分支是A,而需要提交的分支是B, 有两种办法:
    方法一:
    1> 新建一分支C,保留现在的分支修改内容;
    2>git branch C
    3> 切换至目标分支B,拉取C分支的内容至分支B;
    git checkout B
    git fetch origin C
    4> 检查修改文件变化和内容是否原来修改的一致
    git status
    git diff 文件
    5> 按照提交代码环节操作即可;
    方法二:
    1> 将A分支上修改的内容放到回收站工作树,这个相当于是一个栈,可以进行压入弹出,比栈更高级的是可以根据索引进行弹出;
    git stash
    2> 切换至B分支
    git checkout B
    3> 从回收站恢复修改数据至B分支
    git stash
    git stash list 查看回收站中存在的文件;
    git stash show 查看回收站中相对本地文件的变化,与git diff类似;
    git stash pop 恢复回收站最顶层数据至本地;
    4> 按照提交代码环节操作即可

    3、修改提交后发现提交的内容存在问题怎么办?
    如果提交后的代码还没有merge到对应分支,可按照如下方法:
    1> 切换至原来修改提交所在分支
    git checkout targetbranch
    2> 继续修改内容
    3> git add 修改文件
    4> git commit --amend
    5> git push origin HEAD:refs/for/targetbranch
    如果提交后的代码已经merge,按照正常修改提交代码流程即可;

    4、A B C三个人同一时间段内提交代码,此时B提交的代码已经merge, 而C发现他提交的代码与A有冲突conflict,怎么办?
    1> 切换至原来修改提交所在分支,切换至自己修改前的一次提交commit-id
    git checkout targetbranch
    git log | less
    git reset commit-id
    2> 拉取合并代码更新
    git pull origin HEAD:refs/for/targetbranch
    3> git add 修改文件解决冲突,主要是文件中包含HEAD的地方,其中HEAD XXX ====中的XXX是本地旧内容;
    4> git commit -m “修改内容:xxx”
    5> git push origin HEAD:refs/for/targetbranch

    5、拉取代码失败
    1> 确认拉取方式是否为带hook的ssh
    git clone ssh://chenxiaoyuan@10.75.9.60:29418/CGDL-F25/src/mate-related && scp -p -P 29418 chenxiaoyuan@10.75.9.60:hooks/commit-msg mate-related/.git/hooks/
    2> 确认自己的ssh公钥是否重新生成过,或者没有添加至gerrit帐户的认证信息中。

    6、查看某个文件的修改历史
    git log 相对路径

    7、查看某次提交的修改内容
    git show commit-id

  • 相关阅读:
    用大白话谈谈XSS与CSRF
    Lenet5设计理解——咬文嚼字系列
    【java设计模式】之 责任链(chain of resposibility)模式
    【java设计模式】之 代理(Proxy)模式
    【java设计模式】之 建造者(Builder)模式
    【java设计模式】之 模板方法(Template Method)模式
    【java设计模式】之 抽象工厂(Abstract Factory)模式
    【java设计模式】之 工厂(Factory)模式
    浅谈Arrays.asList()方法的使用
    分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
  • 原文地址:https://www.cnblogs.com/noxy/p/9298105.html
Copyright © 2011-2022 走看看