gerrit 使用中踩过的小坑

gerrit 使用中踩过的小坑

gerrit 不能推送 merge

git push origin HEAD:refs/for/master

  Counting objects: 203, done.
  Delta compression using up to 4 threads.
  Compressing objects: 100% (37/37), done.
  Writing objects: 100% (59/59), 6.84 KiB | 0 bytes/s, done.
  Total 59 (delta 26), reused 0 (delta 0)
  remote: Resolving deltas: 100% (26/26)
  remote: Processing changes: refs: 1, done
  To ssh://yuzx@xxx.com:29418/xxxrowd
  ! [remote rejected] HEAD -> refs/for/master (you are not allowed to upload merges)
  error: 无法推送一些引用到 'ssh://yuzx@xxx.xxx.com:29418/xxxrowd'

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

解决办法

git rebase
  Cannot rebase: You have unstaged changes.

git stash
# 每次 push 前
git pull --rebase
git push origin HEAD:refs/for/master
# gerrit review
git pull
git stash pop

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

因在 master 上开发,导致和远程冲突,这时 Git pull 默认 merge 模式 
gerrit 不允许 merge 后提交,需 rebase 方式,所以,本地 pull 以 rebase 方式进行,即: 
git pull –rebase

gerrit review 报错

Code Review - Error
The change could not be merged due to a path conflict.
Please rebase the change locally and upload the rebased commit for review.
   
   
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

处理

git stash
# 每次 push 前
git pull --rebase
git stash pop
   
   
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

eclipse 黑星:已暂存,存在于 INDEX 中。

未添加 .ignore 文件前使用 git add . 将所有文件添加到库中,不小心将一些不需要加入版本库的文件加到了版本库中。此时还没有提交所以不存在 HEAD 版本,不能用 git reset HEAD

git rm -r –cached .

服务器部署裸库,什么是裸库?

其实就是 .git 目录

git clone –bare my_project my_project.git

等价于

cp -Rf my_project/.git my_project.git


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值