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,删除刚才的临时分支

  1. git log 查看提交号

  2. git checkout sha1-of-a-commit 检出版本,更多可看这里

这命令可用:git pull origin master

注意不可用git checkout sha1-latest来恢复到最新版,不然出现detached-head错误,官方解释在这里 ,现在是可以push,但是服务器并没有收到

  1. 问题点:改吧改吧,使用git commit时警告提示detached HEAD,无法push到origin master,与这位遭遇相似

  2. 尝试:git stash功能,没有解决问题,像这里一样,还是回到第2点

  3. 解决办法

  • 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