IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Gerrit - 本地仓库关联远程分支 -> 正文阅读

[开发工具]Gerrit - 本地仓库关联远程分支

????????事情是这样的,前阵子根据领导要求写了个APP,感觉大部分功能都实现了,于是打算上传至服务器,突然想到貌似这个还没建库。心里突然就忐忑起来了,因为之前合并过一次远程分支的结果是提交记录没了。那是一次设备的适配,代码改的可能不算多,但涉及到的功能及需求的修改非常多。好在本次经过尝试,成功提交代码。因此,简单记录下过程。

????????????????????????????????????????????????

第一步肯定要关联远程分支的

$ git remote add origin?ssh://192.168.1.1:2948/app/family

添加完成,然后要 pull 一下,果然出现了问题

$ git pull origin master
From ssh://192.168.1.1:2948/app/family
?* branch ? ? ? ? ? ?master ? ? -> FETCH_HEAD
fatal: refusing to merge unrelated histories

译文:拒绝合并不相关的历史

那这意思也就是说本地分支和远程分支还是没在一块儿呗,我就随便试了试,结果出现以下情况

$ git pull origin master --
Display all 44 possibilities? (y or n)
--all ? ? ? ? ? ? ? ? ? ? ? ? --ff-only ? ? ? ? ? ? ? ? ? ? --progress ? ? ? ? ? ? ? ? ? ?--signoff
--allow-unrelated-histories ? --force ? ? ? ? ? ? ? ? ? ? ? --prune ? ? ? ? ? ? ? ? ? ? ? --squash
--append ? ? ? ? ? ? ? ? ? ? ?--gpg-sign ? ? ? ? ? ? ? ? ? ?--quiet ? ? ? ? ? ? ? ? ? ? ? --stat
--autostash ? ? ? ? ? ? ? ? ? --ipv4 ? ? ? ? ? ? ? ? ? ? ? ?--rebase ? ? ? ? ? ? ? ? ? ? ?--strategy=
--cleanup= ? ? ? ? ? ? ? ? ? ?--ipv6 ? ? ? ? ? ? ? ? ? ? ? ?--recurse-submodules ? ? ? ? ?--strategy-option=
--commit ? ? ? ? ? ? ? ? ? ? ?--jobs ? ? ? ? ? ? ? ? ? ? ? ?--refmap= ? ? ? ? ? ? ? ? ? ? --tags
--deepen= ? ? ? ? ? ? ? ? ? ? --keep ? ? ? ? ? ? ? ? ? ? ? ?--server-option= ? ? ? ? ? ? ?--unshallow
--depth= ? ? ? ? ? ? ? ? ? ? ?--log ? ? ? ? ? ? ? ? ? ? ? ? --set-upstream ? ? ? ? ? ? ? ?--update-shallow
--dry-run ? ? ? ? ? ? ? ? ? ? --negotiation-tip= ? ? ? ? ? ?--shallow-exclude= ? ? ? ? ? ?--upload-pack=
--edit ? ? ? ? ? ? ? ? ? ? ? ?--no-... ? ? ? ? ? ? ? ? ? ? ?--shallow-since= ? ? ? ? ? ? ?--verbose
--ff ? ? ? ? ? ? ? ? ? ? ? ? ?--no-verbose ? ? ? ? ? ? ? ? ?--show-forced-updates ? ? ? ? --verify-signatures

?突然发现后面可以带 --rebase 参数,我们知道

git --rebase会将两个分支融合成一个线性的提交,不会形成新的节点。

?于是大胆尝试,反正我有备份~

然后提示本地有未提交的内容,于是提交一下,在 stash 一下(如果不打算提交可以使用,结束后可以通过 git?stash pop 恢复)

结果居然显示成功了

$ git pull origin master --rebase
From ssh://192.168.1.1:2948/app/family
?* branch ? ? ? ? ? ?master ? ? -> FETCH_HEAD
Successfully rebased and updated refs/heads/master.

看起来已经好起来了啊兄弟们,那就提交一下试一试

$ git push origin master:refs/for/master
Enumerating objects: 414, done.
Counting objects: 100% (414/414), done.
Delta compression using up to 4 threads
Compressing objects: 100% (355/355), done.
Writing objects: 100% (413/413), 191.67 KiB | 2.28 MiB/s, done.
Total 413 (delta 159), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (159/159)
remote: Processing changes: refs: 1, done
remote: ERROR: commit bd1bd7d: 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 2418 lichang@192.168.1.1:hooks/commit-msg ${gitdir}/hooks/
remote: and then amend the commit:
remote: ? git commit --amend --no-edit
remote: Finally, push your changes again
remote:
Tossh://192.168.1.1:2948/app/family
?! [remote rejected] master -> refs/for/master (commit bd1bd7d: missing Change-Id in message footer)
error: failed to push some refs to 'ssh://192.168.1.1:2918/app/family'

?果然还是不行,不过这已经好多了。问了度娘,告诉我说这是因为没有 change-id ,我寻思着我这也是正常的本地提交啊,咋还缺东西了呢。于是又去问了度娘,告诉我 git 本身是不带的,gerrit 特有的。而解决方法也很多,一个是手动解决,还有就是利用 commit-msg hook 自动生成 change-id 。第二方法看起来就很复杂,于是我就用第一种方法试了一下,发现这只能给最近的一次提交记录加上 change-id,这就有点忧伤了。

于是继续浏览发现还可以通过 rebase

格式:git rebase -i [startpoint] [endpoint]

在此,手动感谢

git rebase -i合并多次提交_Hello World ^—^-CSDN博客_git rebase合并多次提交

也就是输入

$ git rebase -i ***

*** 就是远程分支的那次提交 commit id。

然后把 pick 修改为 reword ,然后一路保存 :wq

最后提交代码成功。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:41:58  更:2022-03-16 22:42:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:33:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码