G 置顶! 有更新!

注册登录

  1. Gerrit 地址 http://gerrit.h1z166.com

  2. 用户名密码找 **丁辉** 索要

  3. 填写fullname

050a7c02e84843dc953e7e12a16cf07e-fullname.png

  1. 校验注册邮箱

b6602728d08141e9adfaa539b7e9d812.png

配置ssh key

1.设置Git的user name和email:

$ git config --global user.name "dinghui"

$ git config --global user.email "dinghui@combplus.com"

2.查看是否已经有了ssh密钥:

$ cd ~/.ssh
  • 如果没有密钥则不会有此文件夹,有则备份删除

3.生存密钥:

$ ssh-keygen -t rsa -C "dinghui@combplus.com"

按3个回车,密码设置为空。

Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
  • 最后得到了两个文件:id_rsa和id_rsa.pub

4.在gerrit上添加ssh密钥,

  • settings>SSH Public Keys 这要添加的是“id_rsa.pub”里面的公钥。

5e3db23793684b058b0ea226867cee1f-key.png

c55e3c00b3814849b2364e43877e93c2-profile.png

5.windows 的git 工具有个bug 需要在.ssh目录下创建 config 文件并为其添加内容如下:

Host http://gerrit.h1z166.com
    KexAlgorithms +diffie-hellman-group1-sha1

下载代码

1.在gerrit>Projects中找到要Clone的项目

64a14d00da184db3b8a108e09fadb39c-clone.png

git clone ssh://dinghui@gerrit.h1z166.com:29418/comb-cas-5.0.5.git

2.Clone 之后需要切换分支,一般默认开发分支是alpha。

git checkout -b alpha -t remotes/origin/alpha

加载 hooks 自动生成commid

scp -p -P 29418 dinghui@gerrit.h1z166.com:hooks/commit-msg .git/hooks/

提交代码

git status

git add .

git commit -s

git push origin HEAD:refs/for/alpha

修改当前commit

git status

git add .

git commit --am

shift + q

wq

git push origin HEAD:refs/for/dev

解决冲突

git status

git push origin HEAD:refs/for/dev

git pull --rebase 

1.出现可解决冲突

git status 

git diff 文件名 (查看冲突)

解决冲突

git rebase --continue /skip/abort

git push origin HEAD:refs/for/dev

2.当出现不可解决冲突

git add .

git stash 丢弃修改

git log 查找之前提交已经merged的代码ID

git reset 比较干净的ID号
  • 至此将代码恢复到之前没冲突的比较干净的代码

  • 到git查找到自己提交的有冲突的代码,cherry-pick来,再进行冲突解决

cherry-pick命令

git fetch ssh://shenweikang@gerrit.h1z166.com:29418/test refs/changes/28/28/1 && git cherry-pick FETCH_HEAD

*注:28为url  http://10.11.81.33:1024/#/c/28/1  为自增change_id 字符  为 patch 字符

ps:

  • 在Windows上更新了git 2.6.3 64bit后,clone时出现,unable to negotiate with 10.0.0.8: no matching key exchange methodfound. Their offer: diffie-hellman-group1-sha1

  • 解决方法:在执行git clone之前,在终端输入:

    export GIT_SSH_COMMAND=‘ssh -o KexAlgorithms=+diffie-hellman-group1-sha1’

validate