1 GITLAB的代码库迁移
(1)克隆镜像:git clone --mirror http://172.16.0.34:10080/Daniel.Tao/guguhui_service.git
(2)进入镜像:cd guguhui_service.git/
(3)变更镜像为新地址:git remote set-url --push origin http://gitlab.roadl.com/tao/kdmonkey.git
(4)代码:git push origin master
更多方法可以参考:这里
#2 更改远程地址
- 查看git的远程地地:git remote -v,结果如:
origin http://172.16.0.34:10080/Daniel.Tao/guguhui_service.git (fetch)
origin http://172.16.0.34:10080/Daniel.Tao/guguhui_service.git (push)
(1)方法一
- git更改为新的远程地址:
git remote set-url origin http://gitlab.roadl.com/tao/kdmonkey.git
(2)方法二
-
移除现有:
git remote rm origin
-
添加新的:
git remote add origin http://gitlab.roadl.com/roadl.git
这个方法也可以解决另一个问题 —— idea中默认git用户,如何修改其它的问题:将.ssh文件夹删除后,使用命令git pull origin master,说建立连接失败,再建又用的默认git用户。 删除和修改windows系统凭证都不好使。
3 git检出之前的版本再恢复最新版
场景:打包老版本的代码git branch -d god,删除刚才的临时分支
-
git log
查看提交号 -
git checkout sha1-of-a-commit
检出版本,更多可看这里
这命令可用:git pull origin master
注意不可用git checkout sha1-latest来恢复到最新版,不然出现detached-head错误,官方解释在这里 ,现在是可以push,但是服务器并没有收到
-
问题点:改吧改吧,使用git commit时警告提示
detached HEAD,无法push到origin master
,与这位遭遇相似 -
尝试:git stash功能,没有解决问题,像这里一样,还是回到第2点
-
解决办法
-
git branch god
,创建分支,这个分支即有最新代码 -
git checkout sha1-of-a-commit
,检出主干代码,完成切换,这时,代码又变成了较早的,改吧改吧 -
git merge god
,合成最新代码 -
git branch -d god
,删除刚才的临时分支
4 git导出不带版本管理的文件
git archive --output "./output.tar.gz" master
master也可以换成分支名称,提交hash