git--gerrit
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即可。
本地user.name和user.email和远程仓库不一致
git review:
remote: ERROR: commit 90aab80: email address xxx@qq.com is not registered in your account, and you lack 'forge committer' permission.
remote: The following addresses are currently registered:
remote: yyy@qq.com
remote: To register an email address, visit:
remote: http://192.168.22.22/settings#EmailAddresses
解决办法:
1,修改本地name和email和远端同步:
git config --global user.name "username"
git config --global user.email "email"
2,删除~/.ssh下的id_rsa和id_rsa.pub;
3,重新生成ssh密钥:
ssh-keygen -t rsa
4,将密钥添加到远程仓库。
解决每次git review输入代码的问题
git config --global gitreview.username your_username(也就是user.name)
git config --global gitreview.password your_password(登录远程仓库使用的密码)
更多推荐
所有评论(0)