gerrit是什么

gerrit不是仓库,只是一个代码审核的中间仓库。

代码的提交过程

commit--->gerrit审查---->通过审查--->真正的远程仓库。

git review

git review -d xxx

拉取远程仓库分支,同git clone

git review -d 下载的分支就已经和远程上游分支关联了,无需再配置上游分支。

分支

远程分支:origin/master和gerrit/master

审查仓库默认都是gerrit/master

最终都是需要合并到origin/master下。

git pull提示没有上游分支时,就需要指定当前分支的上游分支为gerrit/master.

comment

修改流程:

ACK----REPLY---SEND

git错误

[分离头指针 eeb923650]--detatched head

[分离头指针 eeb923650] +commit日志

原因:HEAD没有指向任何分支。

分离头指针(detached HEAD)是 Git 中的一种状态,在这种状态下,HEAD 指针(它通常指向当前分支的)指向的是一个特定的提交,而不是指向某个分支。
 

上面的错误说明当前head指向提交eeb923650。

git pull--产生合并冲突

原因:远程分支和当前分支合并存在冲突。

修改冲突---》git add -u---->git rebase --continue;

所有冲突重复以上步骤到合并完成。

然后git log查看远程分支所在的日志--commit_id。

git reset --hard commit_id

git review --- ctrl+c导致程序被删除和修改

1,git review -d xxx

重新下载项目修改。

有多个commit怎么压缩为一个提交

git reset --soft

git review----rejected

Enumerating objects: 43, done.
Counting objects: 100% (43/43), done.
Delta compression using up to 4 threads
Compressing objects: 100% (29/29), done.
Writing objects: 100% (29/29), 40.21 KiB | 5.03 MiB/s, done.
Total 29 (delta 13), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (13/13)
remote: Processing changes: refs: 1, done    
To ssh://10.20.201.92:29418/rlrob_robotlive
 ! [remote rejected]   HEAD -> refs/for/master%topic=ae_editor (change http://10.20.201.92/c/rlrob_robotlive/+/194 closed)
error: failed to push some refs to 'ssh://10.20.201.92:29418/dev'

原因:

1,远程分支已经被abandon了

gerrit上的这个ID分支已经被abandon,所以远端仓库将这个ID的分支设置为close。

而推送时远程仓库检测到这个ID的分支closed,所以rejected。

解决办法:

git commit --amend 的时候删除change id 。

退出后会自动生成一个新的change id,git review(push) 后没问题.

原文链接

2,本地分支和远程分支存在冲突

解决办法:

git pull

合并冲突之后,再次push即可。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐