Fork me on GitHub

关于gitlab的一个问题解决

这两天折腾一个关于gitlab的问题,搞得比较焦头烂额。不过经过折腾,最终还是成功了。

当面对着一个问题,并且看到还没被解决的时候,感觉很不舒服;

努力折腾之后,解决之后,也会身体轻松。或许工程师天生就是"不解决问题不舒服斯基"。这是不好的习惯,以后要改。这里简要记录一下。

一.产生的问题描述:

  前两天同事自己在gitlab上面创建了一个仓库,http://121.201.13.32:9000/sbzhou/tsd-collector.git,由于所有peoject都基本是统一的前缀 http://121.201.13.32:9000/xiaobao/(例如http://121.201.13.32:9000/xiaobao/tsd-thirdparty.git),为了协调和统一性,我们建议统一管理:重建peoject

  操作步骤1.,我首先通过gitlab去transfer project,结果发现transfer之后,他无法提交;

  于是只好重新再次create project,create之后,上传他原来的project code,依然会存在问题。

HaoChuang@LENOVO-PC /E/test/suyx/tsd-collect (master)
$ git push -u origin master
Username for 'http://121.201.13.32:9000': suyx
Password for 'http://suyx@121.201.13.32:9000':
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 553 bytes | 0 bytes/s, done.
Total 6 (delta 4), reused 0 (delta 0)
remote: GitLab: You don't have permission
To http://121.201.13.32:9000/xiaobao/tsd-collect.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://121.201.13.32:9000/xiaobao/tsd-collec
t.git'

二.解决过程:

1.查看系统配置,发现,这里说一下,同学们安装gitlab的时候,可以才用这个安装: bitnami-gitlab-7.6.2-0-linux-x64-installer.run

你可以通过如下命令启动: ./ctlscript.sh start

另外,查看日志的话,可以去该位置查看:/home/git/gitlab-shell/gitlab-shell.log

/opt/gitlab-7.6.2-0/apps/gitlabci/htdocs/log/sidekiq.log

部分配置文件,可以根据这里查找:/opt/gitlab-7.6.2-0/properties.ini

参考:http://www.koofun.com/showcode.html?id=29706&l=en

 

这里标记几个常用的命令,供各位参考:

Git global setup

git config --global user.name "haochuang"
git config --global user.email "hao@aituyou.com"

Create a new repository

mkdir tsd-collect
cd tsd-collect
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@121.201.13.32:xiaobao/tsd-collect.git
git push -u origin master

Push an existing Git repository

cd existing_git_repo
git remote add origin git@121.201.13.32:xiaobao/tsd-collect.git
git push -u origin master

三.最终解决办法:

1.提升设备的配置;

2.修改了部分配置文件,增大了资源配置,确保http链接可用;

3.清除重复repo,确保服务器端干净;

4.重建git仓库,重新清理和检查、调整权限;

 

四.问题原因分析和回顾:

  参考:https://bitbucket.org/site/master/issues/7522/remote-rejected-master-master-pre-receive

  重复会导致问题;

      需要添加SSH Public Key 到你的 GitLab:http://stackoverflow.com/questions/27457540/gitlab-password-and-permission

 

五.操作备注:

备注1:在第一次创建工程的时候,记得先作如下操作:

git remote add  origin git@github.com:<your name>/<appname>
第一次需要origin,添加repository,之后才向repository push你的代码。
一般是push到github之后,再git push master部署到master上。

备注2:在使用git的时候,要了解git的基本使用flow,而且团队中尽可能让所有人都能正常了解和使用:

https://about.gitlab.com/2014/09/29/gitlab-flow/

 

备注3:对于工程的创建和删除,最好是统一管理。

当然,最好的是公司能有自己的SCM人员,免得由于部分人操作失误,出现问题之后,耽误其他工程师帮忙修复,耽误时间。

PS:对于一些号称工作了15年,却只会做点传话筒的事情,只会用TororsieSVN GUI提交代码,连git都用不好,用了也还个你挖坑,在工作中尽量与这种人越远越好,免得受其影响,被带出坏习惯 :-)

posted @ 2015-08-13 17:44  念槐聚  阅读(3898)  评论(0编辑  收藏  举报

IT技术&应用开发&研究 - 创建于 2008年05月12日

这是一位IT工程师的个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

致力于软件学习&研究工作,涉及Linux与软件开发出、测试、产品、行业相关知识,关注互联网前沿技术与与创业趋势等。


博客园 | Github | W3C

返回顶部