简便提交配置
场景示例:
develop_pek分支开发完代码后,需要提交到gerrit上,并添加 user1和user2进行review。
常规提交方式:
git push origin develop_pek:refs/for/develop_pek%r=user1,r=user2
简便提交:
vi epic-kingdew/.git/config
添加内容:
[remote "ll_dev_pek"] # 这里的名称可以任意取值
url = ssh://xxxx@gerrit.cmss.com:29418/BC-EPIC/epic-kingdew #这个地方需要修改
push = develop_pek:refs/for/develop_pek%r=user1,r=user2
上述配置文件修改完成后,可以使用简单方式提交:
git push ll_dev_pek
开发耗时稍长的新功能
这里提供一种方案,也可以使用其他的方案
git checkout -b newBranch #拉新分支(本地分支)
在本地开发并提交(newBranch分支):
git commit #普通提交
git commit --amend # 保存在上一次提交,可以写一点保存一点
git log #查看本地提交的 commit-id:假如为: xyz
将本地newBranch分支的代码合并到develop_pek并提交:
git checkout develop_pek #切换分支
git cherry-pick xyz #如果有冲突,解决冲突后继续提交
git push ll_dev_pek # ll_dev_pek 需要保持和上面的配置一致
如果gerrit有不通过的,需要修改后在提交,需要在develop_pek分支修改后,再重新提交,方式:
1. 修改代码
2. git commit —amend
3. git push xxxxx
修改之前提交的内容
场景:
A提交了三次代码到gerrit上,提交顺序为:
- oldCode (代码已合并到代码库,假设 commitId=x1)
- code1(最先提交,假设 commitId=x2)
- code2 (假设 commitId=x3)
- code3(最后提交,假设 commitId=x4)
且三次代码都没有合入到代码库(可能是因为review不通过),如果在review code1时,发现需要修改,此时该如果去做?因为 —amend只能修改最后一次提交;
方法和步骤:(需要修改code1,并重新提交到gerrit上)
git rebase -i x1 # 在code1的前一次commitId
上述命令执行完成后,会出现需要编辑的文件,文件内容大致如下:
pick code1
pick code2
pick code3
修改上述文件内容,将code1那一行的pick修改为 edit,然后保存后退出;
edit code1
pick code2
pick code3
接下来就和正常的代码提交一样
git add .
git commit --amend
最后执行:
git rebase --continue
git push xxxxxx
stash的使用
常用命令如下:
git add xxx #将需要缓存的代码添加进来
git stash save "name" #保存为name
git stash list #会显示stash的列表
git stash pop #将最后一次代码恢复
git stash apply stash@{num} #回复指定代码,注意stash中不会将代码删除
在恢复代码时,建议使用 apply 而不是 pop命令,可以有效方式代码丢失。
当代码已经合入到代码库,可以考虑将不再使用的代码删除。