git--gerrit
git
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即可。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)