开启生长之旅!这是我参加「日新计划 12 月更文挑战」的第4天,点击查看活动详情
今日遇到git库房搬迁的问题,记载如下:
问题背景
今日遇到一种状况,要把一个项目从内网gitlab搬迁到外网gitlab,我运用的是指令搬迁.
运用如下指令进行导出项目:
git clone --bare <库房地址>
准备到了外网运用如下指令进行上传:
git push --mirror <库房地址>
导出很顺利,在往外网新库房上传的时分呈现了一些问题:
问题1:
提示不是一个库房
这个问题比较简略,由于没进入到xxx.git文件下
必须先进入xxx.git下再执行就行了
问题2:
提示推送失利
这个问题废了不少时刻,之前没遇到过,看提示中有一句无法删去默许分支. 以为是默许分支的问题,所以上gitlab大将新库房的默许分支删去/改名,成果都没作用.
然后一顿百度后,许多都说是权限问题,查看了一下gitlab上我的权限,确认我的权限是Maintainer,应该不会呈现权限问题
然后测验运用-f强制推送,依然无作用
镇定了五分钟后,从头梳理,置疑又可能是gitlab远端库房建的有问题,所以删去库房,重建库房,公然可以了.
两次建库的差异在于: 第二次没选择主动生成README.md,
选择了这个选项,会主动给库房初始化,并建立一个默许分支.
这样的状况就不能运用git push –mirror推送了
总结
推送指令总结
之前没有运用过–bare和–mirror这两个参数指令,今日总结一下
git clone 加上 –bare是拉取一个裸版本库,裸版本库和正常git clone拉取的正常库的差异是:
- 裸库只具有版本操控的左右,本身不能进行作业区的操作,即正常的 add/commit等指令都是不能执行的.
- 裸库可以作为一个本地库房,供给正常库运用,即正常库可以设置remote url为裸库,之后push就是向裸库提交(相当于github/gitlab这样的中心库房的作用)
- 裸库一般只用于分享库房,毕竟没人会在自己本地搞一个库让别人连,gitlab/github/云效不香吗?
–mirror
这个了解的不太深刻,从百度/google及官网的阐明来看,就是将本地的一切分支都推送到远端(强制),我的简略了解就是将本地的一切分支直接掩盖远端.
与git push相比,不加mirror就只是推送某一个分支.
附:
git官网阐明地址: git-scm.com/docs/git-pu…
stackoverflow问题解说: stackoverflow.com/questions/3…
个人考虑总结:
git是现在开发必备的东西,可是许多时分只会用 add/commit/push等简略指令,没有深化了解其中各种参数的作用,有时分费了许多时刻,其实只需要一条简略的指令就能解决.
git必需要加深了解,对开发影响太大了.