分类目录归档:Git

Gitlab 安装

 

选择系统版本:

https://about.gitlab.com/downloads/#centos6

 

1、安装配置依赖

sudo yum install curl openssh-server openssh-clients postfix cronie

sudo service postfix start

sudo chkconfig postfix on

sudo lokkit -s http -s ssh

2、加安装包到安装的server

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bashsudo yum install gitlab-ce

自己之定义版本:

curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/6/gitlab-ce-XXX.rpm/downloadrpm -i gitlab-ce-XXX.rpm

3、配置

sudo gitlab-ctl reconfigure

4、浏览登录

 

On your first visit, you’ll be redirected to a password reset screen to provide the password for the initial administrator account. Enter your desired password and you’ll be redirected back to the login screen.

The default account’s username is root. Provide the password you created earlier and login. After login you can change the username if you wish

 

配置,重启:

 

主机IP更换后需要修改:

vi /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

HOST  XXX

 

修改后重启gitlab,命令如下:

 

gitlab-ctl restart

sleep 3

gitlab-ctl restart nginx

sleep 1

gitlab-ctl status

svn服务器设置主备同步

故事的场景是这样地,假设你已经有1台svn服务器,用于日常提供开发同学使用,突然有一天,你闲来无事,几杯小酒下肚,不知怎么突发想到如果有一天你维护的这台svn坏了,有什么影响,这一想不要紧,马上吓得出一身冷汗,酒也醒了一半,感觉就如同末日来临一般: 早上到公司,你电脑屏幕跳出至少50个IM窗口,基本都是一句话:“是不是咱们svn挂了?”,然后你看到负责开发的领导走到你领导办公室,不一会你的领导出来,走到你的工位,根本不顾你在忙些什么,直接打断你说:”小X呀,咱们svn是不是有问题了,别着急,慢慢来,先定位问题,然后解决,现在是好多人在等着,但不要慌张,多年你一直负责这个服务器管理,公司就你最熟悉了,考验你的时候到了,要挺住……@@#$%$#@,……..”,,领导一边说着,一边心里想着:”你小子净跟我闯祸,平时是怎么维护的,不知道这很严重吗,赶紧整好,否则,嘿嘿,你等着“。当然另一旁的你还要迎合着,面带微笑不停点头,事实上你根本不知道他再说什么,心里只想发出揭斯底里的呐喊:能不能不打扰LZ干活,定位个毛呀,拜托你快把废话讲完。“你想到这,你酒已基本全醒了,我擦,这大坑可不能把我陷进去,我可是个负责人的人,说完整了整自己的红领巾,废话不多说,赶紧搭备机,有问题,一键切换,继续我的小酒小肉,故事就讲到这里,接下来我们言归正传。

上段之所以废如此笔墨,除了戏剧性的描述下背景外,主要我们作为一名合格的系统管理员要加强风险意识,对出现的单点故障要做到100%避免,能做HA的做HA,做不了的核心数据至少要进行冷备,尤其是数据库,能做主从一定要做,其他的也不多讲了,今天主要是来说下我们的svn备份,svn基本每个公司都用,现在git大家逐渐用的多起来了,但svn相信也不少公司还仍在使用(换平台岂是儿戏),而且大部分是在存储公司代码,都是非常核心的,所以作为管理员,做好备份是自己职责所在,下面我们开始讲解具体操作:

开始前准备,假设你主svn是A,备份机器是B,刚安装好系统,下面我一步一步操作,看如何完成主从备份:

B机操作,安装svn:

1、建立工程,目录和工程名称跟主机一致:

这时在/home/svn/projectname/下应该有建立好的初始化文件,像:conf,db等目录。

2、拷贝A机上的projectname/conf下文件到B机的conf目录下,即:/home/svn/projectname/conf/,拷贝之前可以先将备机的conf目录下的文件进行备份(个人习惯问题)。

3、在B机上操作:

4、A机操作:

 

到此操作完,在操作过程中要注意几点:

1、防火墙两台机器要互通。

2、设置的用户(命令行中的user用户)要有对库的最高权限(非必须),具备读写权限。

3、svnlook youngest /home/svn/projectname  同步后查看两边的更新。

4、在主库上建立文件,再登录备库进行查看结果,如果同步成功,表示搭建完全正确。

 

 

如何将代码托管到github

之前我写好的代码总是怕丢,所以我一般是复制几份,存到不同的地方,可是随着自己的版本更新,最后找起来非常费劲和耽误时间,不过现在有了github,我们就可以放心的将代码放到这个大平台托管了,不需要担心丢失问题,所以今天这篇主要是讲如何将自己的代码放到github上托管,真是有了github ,妈妈再也不用担心代码丢失问题了,github分收费和免费,免费的只能存储public文件,就是大家都可以共享,谁都可以看,如果交点保护费,你就可以享受自己的私人空间了,代码就保密了,除了自己谁也看不了,介绍的内容就到这里,我们进入今天的主题,今天的内容主要分以下几个部分:

1、git安装,建立本地库

2、github注册,ssh key 配置,建立远程库

3、建立本地库和远程库关联

4、git日常操作

 

现在开始我们第一部分内容,git本地安装和建立库:

安装命令:

#yum install git

安装完成,新建一个目录,例如:

#mkdir /home/project

这个目录就是你将来的git库目录,进入,然后初始化:

在这个目录下应该可以看到一个.git的目录,这个是git自己管理版本用的,不要修改。 git config 两行是用来配置提交的用户和邮箱认证,global表示是这台机器上都用这个配置,另外还会在/root/目录下生成一个.gitconfig文件,刚才的命令就配置到这个文件里,到这里本地库就建立完毕了,不过库里还没有任何文件,这个不急,一会我们再说如何使用,现在进入到我们第二部分。

github注册和建立远程库:

其实注册没什么好讲的,很容易,打开https://github.com/,填写用户和邮箱名称就可以,注意这里写的名字将来是你访问github的地址,例如我的注册名是glacier-ji,访问地址就是https://github.com/glacier-ji/,邮箱要着重说下,我试了163的邮箱是不行的,收不到验证信息,用qq邮箱注册可以,所以如果注册时请不要选择163邮箱,因为你根本验证不了,通过验证主要是为了采用ssh加密传输方式,因为这部分不好用文字描述,我就直接截图了,有图有真相:

登录自己账户,点击右上角图标,选择Settings,

github_create

点击左边栏ssh keys,然后点右边add ssh key,输入一个标题,然后把你key贴到里边就可以了。

github_create

也许你要问ssh key是啥,我没有从哪里搞一个呢,别急,下面我们就说下如何生成ssh key文件,在linux终端下输入命令:

会有一个id_rsa.pub文件,这个文件的内容就是ssh key文件内容,复制粘贴到github上就可以了,注意千万不要粘贴id_rsa ,这个是你的私钥文件,上传没用,这几个文件主要作用是你将来要用这个私钥进行加密,然后github用你上传的公钥进行解密。

下面将如何创建远程库(repository),用你注册账号登录,操作请看如下截图:

github_create

 

需要填写的我已用圆圈标注,需要填写其实就一个远程库名称,其它都可以不写,然后点开始创建,就建立完成了。

建立远程库与本地库的关联:

好了,现在们已经有了一个本地库和一个远程库,现在都没有任何代码文件,现在我们要建立他们之间的关系,使他们同步关联起来,进入本地库目录,操作如下:

然后,然后就没了,简单吧,一条命令搞定,不过这条命令需要着重说明下,origin 是远程库代号,glacier-ji是我的登录用户名,请大家一定要换成自己的,否则就关联到我的github上了,python_code.git是我建立的远程库名称。

最后我介绍下对github的操作,如何将本地代码与githubu同步:

基本步骤是先将文件加入到自己本地git库中,然后再推动到github上 ,以下展示如何将自己之前的代码推到github上:

现在我们来逐行解释,拷贝就不说了,git add 后跟一个文件或目录,是加到git库中,git commit 是进行提交,默认是放到git 缓存空间中,最后一个git push是将内地库内容同步到github上,第一次用-u参数,建立本地master和远程库master关联,以后再推动就可以直接用:

关于git  的使用还有很多有用的命令,深入学习的同学请自行学习,这里就不在介绍了。

正常情况下如果你一路按这个文档操作下来是不会有任何问题的,那如果有问题呢,其实也很简单,全部删除重新做一遍,当然为了大家都能一次成功,我以下写了可能会遇到的问题:

1、ssh无法连接到github,显示timeout ,解决:

这个问题有很多原因,我建议关闭防火墙,先试试,如果不行,就按以下方法来:

在.ssh/目录下,新建config文件,写入以下内容,

Host github.com
User your mail address
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

保存退出,然后测试:

第一次需要输yes,如果能看到 You’ve successfully authenticated, but GitHub does not provide shell access.就证明OK了。

2、关联远程库的时候提示远程库已经存在

解决:运行

#git remote rm origin

3、如果只是测试,遇到无法提交,可以强制进行合并提交:

运行命令:

#git push -f