• Gerrit最简工作流


    Gerrit最简工作流:

    git clone  ...  //注意clone with commit-msg hook,否则push可能失败(ERROR: missing Change-Id in commit message footer)

    开发修改代码

    git status   //查看当前状态,是否所有修改都要提交

    git commit -a -m "xxx" //提交修改到本地分支(如果不是想提交所有修改,分开使用git add和git commit -m)

    git pull -r   //更新合并,如果工作在非master下,用git pull origin master -r。如果冲突见FAQ:2

    git push origin HEAD:refs/for/master%r=评审员邮箱


    FAQ:


    1、如果commit后如何修改提交内容? 如果gerrit评审不过或者pipeline失败怎么办?

    修改代码

    git add 修改代码

    git commit --amend        //会跳出来修改日志的编辑框,保存即可,todo,是否要加-m。

    git pull  -r                        //更新合并,如果工作在非master下,用git pull origin master -r

    git push origin HEAD:refs/for/master%r=评审员邮箱 

    2、git pull -r 合并有冲突怎么办?

    先修改代码解决冲突

    git add 修改代码

    git rebase --continue

    git commit --amend  //前面有未push的提交才用参数--amend

    git push origin HEAD:refs/for/master%r=评审员邮箱

    3、git放弃未提交的修改

    $ git checkout -- file-name

    $ git checkout *.java   //比如修改的都是java文件,不必一个个撤销,可以使用

    $ git checkout .  //撤销所有修改

    4、git所有操作都能回退(回到过去和未来)

    $ git reflog
    b7057a9 HEAD@{0}: reset: moving to b7057a9
    98abc5a HEAD@{1}: commit: more stuff added to foo
    b7057a9 HEAD@{2}: commit (initial): initial commit

    所以,我们要找回我们第二commit,只需要做如下操作:
    $ git reset --hard 98abc5a

    $ git reset --hard HEAD^   //上一个版本是HEAD^,上上一个版本就是HEAD^^,更多^比较容易数不过来,所以写成HEAD~100

    注:revert 和reset 都能回退,但revert 会生成新的commit,Gerrit建议使用reset 

    git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留

    git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区 

    5、如何修改历史提交?

       git使用amend选项提供了最后一次commit的反悔。但是对于历史提交呢,就必须使用rebase了。

     git rebase -i HEAD~3 

           表示要修改当前版本的倒数第三次状态。

            这个命令出来之后,会出来三行东东:

            pick:*******

            pick:*******

            pick:*******

            如果你要修改哪个,就把那行的pick改成edit,然后退出。这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:

    git commit --amend   //对commit进行修改。

    git rebase --continue  //修改完了之后,要回来对不对? OK,一切都搞定了。

     

     这里写图片描述

  • 相关阅读:
    食谱
    食谱
    食谱
    无题
    Appium+python 自动发送邮件(2)(转)
    Appium+python 自动发送邮件(1)(转)
    Appium+python HTML测试报告(2)——一份报告模板(转)
    Appium+python HTML测试报告(1)(转)
    Appium+python的单元测试框架unittest(4)——断言(转)
    Appium+python的单元测试框架unittest(3)——discover(转)
  • 原文地址:https://www.cnblogs.com/onetwo/p/7373677.html
Copyright © 2020-2023  润新知