简便提交配置


场景示例:
develop_pek分支开发完代码后,需要提交到gerrit上,并添加 user1和user2进行review。
常规提交方式:

  1. git push origin develop_pek:refs/for/develop_pek%r=user1,r=user2

简便提交:

  1. vi epic-kingdew/.git/config
  2. 添加内容:
  3. [remote "ll_dev_pek"] # 这里的名称可以任意取值
  4. url = ssh://xxxx@gerrit.cmss.com:29418/BC-EPIC/epic-kingdew #这个地方需要修改
  5. push = develop_pek:refs/for/develop_pek%r=user1,r=user2

上述配置文件修改完成后,可以使用简单方式提交:

  1. git push ll_dev_pek

开发耗时稍长的新功能


这里提供一种方案,也可以使用其他的方案

  1. git checkout -b newBranch #拉新分支(本地分支)

在本地开发并提交(newBranch分支):

  1. git commit #普通提交
  2. git commit --amend # 保存在上一次提交,可以写一点保存一点
  3. git log #查看本地提交的 commit-id:假如为: xyz

将本地newBranch分支的代码合并到develop_pek并提交:

  1. git checkout develop_pek #切换分支
  2. git cherry-pick xyz #如果有冲突,解决冲突后继续提交
  3. git push ll_dev_pek # ll_dev_pek 需要保持和上面的配置一致

如果gerrit有不通过的,需要修改后在提交,需要在develop_pek分支修改后,再重新提交,方式:
1. 修改代码
2. git commit —amend
3. git push xxxxx


修改之前提交的内容


场景:
A提交了三次代码到gerrit上,提交顺序为:

  1. oldCode (代码已合并到代码库,假设 commitId=x1)
  2. code1(最先提交,假设 commitId=x2)
  3. code2 (假设 commitId=x3)
  4. code3(最后提交,假设 commitId=x4)

且三次代码都没有合入到代码库(可能是因为review不通过),如果在review code1时,发现需要修改,此时该如果去做?因为 —amend只能修改最后一次提交;

方法和步骤:(需要修改code1,并重新提交到gerrit上)

  1. git rebase -i x1 # 在code1的前一次commitId

上述命令执行完成后,会出现需要编辑的文件,文件内容大致如下:

  1. pick code1
  2. pick code2
  3. pick code3

修改上述文件内容,将code1那一行的pick修改为 edit,然后保存后退出;

  1. edit code1
  2. pick code2
  3. pick code3

接下来就和正常的代码提交一样

  1. git add .
  2. git commit --amend

最后执行:

  1. git rebase --continue
  2. git push xxxxxx

stash的使用


常用命令如下:

  1. git add xxx #将需要缓存的代码添加进来
  2. git stash save "name" #保存为name
  3. git stash list #会显示stash的列表
  4. git stash pop #将最后一次代码恢复
  5. git stash apply stash@{num} #回复指定代码,注意stash中不会将代码删除

在恢复代码时,建议使用 apply 而不是 pop命令,可以有效方式代码丢失。
当代码已经合入到代码库,可以考虑将不再使用的代码删除。