码云/Gerrit中Git代码操作指令

                                        

码云帮助文档:http://git.mydoc.io/?t=83150

在码云上创建一个新的仓库,并获取这个仓库的HTTP地址,下边有讲SSH方式操作代码。

HTTP方式操作代码

1 创建一个空的文件夹,右键选择:Git bash here,登录你的git账号密码开始clone

  1. git config --global user.name "username"//注意,上面user.name 空格 "username"
  2. git config --global user.email "你的邮箱"
  3. git init  //初始化
  4. git status //主分支状态还是什么的,不清楚,知道的请留言谢谢。
  5. git add -A
  6. git commit -m"helloworld"
  7. git remote add origin git@gitee.com:XXXX/XXXX.git //关联远程仓库
  8. git remote -v //查看是否关联成功,当然,你也可以不查看
  9. git clone git@gitee.com:XXX/XXXX.git   //clone远程仓库代码,下载整个master仓库
  10. //git clone git@gitee.com:xxx/xxx.git -b dev //clone远程仓库master下dev分支的代码

这时候会根据输入的地址弹出弹窗,请输入您的码云账号密码即可下载。

注意:这里的远程仓库地址是HTTPS  不是SSH

**********************分割线***************

为什么先说下载仓库的代码,是需要先获取到远程仓库的地址来完成操作。

  1. git add . //将所有项目代码添加到Git(本地)
  2. git commit -m"first commit"//添加提交注释, -m后边紧跟着",没有空格
  3. git push origin master //提交代码 ,强力推荐使用下面那行
  4. git push origin master -f //如果提交个代码遇到阻碍,或者不自信阳痿等等,使用这句强力提交……

                                                

当反复提交失败时:

git config --system --unset credential.helper

可以重置账号密码,来重新登录完成提交!

Git/Gerrit中SSH配置
使用git命令获取SSH公钥

在任何一个文件git bash打开git命令输入框开始输入:

ssh-keygen.exe -t rsa -C "your@email.com"

然后一路enter!

查看ssh公钥:cat(一个空格)~/.ssh/id_rsa.pub

cat ~/.ssh/id_rsa/pub

拿到ssh公钥以后放到你要下载项目的设置-->SSHkey-->Add New SshKey

git/gerrit使用SSH方式操作代码
SSH途径下载代码(HTTP途径下载使用的时候需要输入账号、密码)

//登录
git config --global user.name "your name"
git config --global user.email "your email"

//初始化
git init

//clone
git clone "ssh@git"

//clone指定分支的代码,这里分支名称dev
git clone "ssh@git" -b dev

//修改代码以后提交代码

//添加修改的文件
git add .

//查看状态
git status

//添加备注
git commit -m "fix:更新内容 bug单号"

//另一种添加备注到指定分支dev
git commit -m "fix:更新内容 bug单号" -b dev

//先同步代码
git pull

//提交代码到dev分支,其中HEAD:refs/for/是固定开头
git push origin HEAD:refs/for/dev

//继续使用git命令,生成change-id
git commit --amend --no-edit

//最后重新提交一次
git push origin HEAD:refs/for/dev

最终提示:
Enumerating objects: 19, done.
Counting objects: 100% (19/19), done.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (10/10), 881 bytes | 881.00 KiB/s, done.
Total 10 (delta 7), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (7/7)
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote:   http://gerrit-sejv.smartchina.com.cn/c/gkui_wh/apps/XCNotificationCenterUI/+/5432 fix:情景模式卡片右侧显示切割异常 SHU104S-14439 Pcode:Master [NEW]
remote:
To ssh://gerrit-sejv.smartchina.com.cn:29418/gkui_wh/apps/XCNotificationCenterUI
 * [new reference]     HEAD -> refs/for/p/gkui/s/dhu23/13/dev


   git push origin HEAD:refs/for/dev提交报错

   第一种提交失败提示

   (过来人提示:以下报错多出现在SSH clone代码的时候没有将git/hook/commit-message文件同步下来,强烈建议使用Greeit中SSH的clone with commit-message hook同步方式,特别是关于第一次提交代码提示确实hook/commit-message文件的时候。即便是本地自行创建了该文件,也会提示hook/commit-message是空的)

Enumerating objects: 19, done.
Counting objects: 100% (19/19), done.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (10/10), 840 bytes | 840.00 KiB/s, done.
Total 10 (delta 7), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (7/7)
remote: Processing changes: refs: 1, done
remote: ERROR: commit de51d4d: missing Change-Id in message footer
remote:
remote: Hint: to automatically insert a Change-Id, install the hook:
remote:   gitdir=$(git rev-parse --git-dir); scp -p -P 29418 e-jiantao.lu@gerrit-sejv.smartchina.com.cn:hooks/commit-msg ${gitdir}/hooks/
remote: or, for http(s):
remote:   f="$(git rev-parse --git-dir)/hooks/commit-msg"; curl -o "$f" http://gerrit-sejv.smartchina.com.cn/tools/hooks/commit-msg ; chmod +x "$f"
remote: and then amend the commit:
remote:   git commit --amend --no-edit
remote: Finally, push your changes again
remote:
To ssh://gerrit-sejv.smartchina.com.cn:29418/gkui_wh/apps/XCNotificationCenterUI
 ! [remote rejected]   HEAD -> refs/for/p/gkui/s/dhu23/13/dev (commit de51d4d: missing Change-Id in message footer)
error: failed to push some refs to 'ssh://gerrit-sejv.smartchina.com.cn:29418/gkui_wh/apps/XCNotificationCenterUI'


//根据提示使用git命令(在-p前面添加-O 大写的呕)
gitdir=$(git rev-parse --git-dir); scp -O -p -P 29418 e-jiantao.lu@gerrit-sejv.smartchina.com.cn:hooks/commit-msg ${gitdir}/hooks/

//继续输入git指令
f="$(git rev-parse --git-dir)/hooks/commit-msg"; curl -o "$f" http://gerrit-sejv.smartchina.com.cn/tools/hooks/commit-msg ; chmod +x "$f"


//继续使用git命令,生成change-id
git commit --amend --no-edit

//最后重新提交一次
git push origin HEAD:refs/for/dev

  第二种提交失败的报错提示


Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Processing changes: refs: 1, done
To ssh://gerrit-sejv.smartchina.com.cn:29418/gkui_wh/apps/XCNotificationCenterUI
 ! [remote rejected]   HEAD -> refs/for/p/gkui/s/dhu23/13/dev (no new changes)
error: failed to push some refs to 'ssh://gerrit-sejv.smartchina.com.cn:29418/gkui_wh/apps/XCNotificationCenterUI'


        根据以上错误提示内容[remote rejected]   HEAD -> refs/for/p/gkui/s/dhu23/13/dev (no new changes)来看,说明是在此次提交过程中改分支no new changes(没有新的变化),但上面确实使用了git commit -m "XXXXX"的git命令行,所以这不是我们的问题,是git或者Gerrit存在的问题,接下来(本人是Android开发,用的编译工具是Android studio)用编译工具把Commit的内容提交上去(图片1-1),然后再使用编辑工具进行正常提交操作即可

                                           (1-1)

总结:IT的世界确实考验人,单独一种常规处理问题的方法不行的时候,完全可以尝试多种方法一起使用,看是否能处理掉问题。

QQ群:88627109

欢迎进群讨论。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值