
2、创建一个支持PHP的服务器,将Github仓库中的文件复制到服务器上;
3、安装PHP服务器端的所有依赖,使PHP可以在服务器上正常运行;
4、在服务器上运行PHP文件,如果没有任何问题,则表明部署成功。第一,下载并安装git
目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好
使用默认配置安装Git。这个不用多说,一路Next就可以,如果对各种选项不熟悉,建议使用默认配置,没问题的。
第二,创建github账号
什么是Git和GitHub
Git —The stupid content tracker, 傻瓜内容跟踪器,是一个由Linux内核开发者Linus为了更好地管理Linux内核开发而创立的分布式版本控制软件。
GitHub — 学生做版本控制最讨厌的就是找服务器,配置太麻烦了。GitHub这个网站为每个用户提供服务器托管其Git代码库,免费空间为300M。注册GitHub后你就会有03G的免费空间,不过只能创建公开项目。
为什么不选CVS或SVN
Git提交/克隆/pull/push的速度更快
Git的绝大多数 *** 作都可以在本地完成,不需要频繁连接服务器。
注册GitHub账号
GitHub网址在 这里
点击上方导航条的Signup and Pricing即可进入注册界面, 选择注册免费账户
GitHub选择的默认通信方式是SSH,所以要先在Git里面生成SHH Key,打开Git Bash在其中输入如下命令:
ssh-keygen -t rsa -C "3sdfsf80@xinlangcom"
之后会让你选择是否对存放SSH Key的文件夹进行加密,一般都不需要的。一路回车,就OK了。
在c盘,当前用户文件夹下,有个ssh 文件夹,在里边 找到 id_rsapub文件,用记事本打开,复制其中的全部内容。
登陆你的GitHub账户,依次点击Account Settings
>
SSH Public Keys
>
Add another public key,把id_rsapub中的内容拷贝进去 。
至此,基本的设置已经完成了。
成了。
测试你的Git
经过上述配置,你的Gti应该可以通过SSH连接GitHub服务器了,让我们来测试下,输入如下命令:
会给你这样的提示:
输入yes,会显示:
到这里,说明你的SSH运转良好。
如果提示你的密钥不正确,那么你需要重新确认上一步的 *** 作是否完整无误。
第三,建立本地git仓库
首先,git要求使用者必须提供自己的身份标识,为此我们需要在git bash中执行以下命令:
git config --global username 'aaTessst'
git config --global useremail fsc@sinacom
其次,选择git仓库目录
我们假设将git仓库目录放在D盘的OPENSource目录下,可以通过在git bash中执行以下命令完成:
cd /d
mkdir OPENSource
注:git bash支持大多linux bash终端命令,你可以自己尝试更多终端 *** 作。
最后,建立项目并初始化git仓库
我们的第一个项目是一个使用Python语言将XML文件转换成Python字典,通过执行以下命令完成此步骤:
mkdir Python-XML2Dict
cd Python-XML2Dict
git init
执行此 *** 作后,git将在Python-XML2Dict目录下创建一个隐藏目录(git),这个目录就是git用来管理软件版本的仓库。
第四,使用git管理项目
此步 和 在linux 上 使用 git 的 方法一样,具体参考 我的 其他 博文!
第五,将项目提交到github管理,gitpush
如果 第二步 测试无错,那么 经过 以下两步 就可以将本地的文件提交到github仓库了。
1、登录GitHub后,你可以在右上边靠中那里找到一个按钮“creat a New Repository”,点击过后,填入项目名称、说明等 过后就可以创建了,然后会出现一个提示页面,记下类似 git@githubcom:XXX/XXXgit 的地址,这个就是你这个项目的地址了。
2、
1 git remote add origin git@githubcom:XXX/XXXgit
2 git push -u origin master //把本地 master 分支 推送到 服务器的master分支上,如果服务器没有此分支,就 新建 此分支。这也是 在服务器上新建分支的一种方法
这个git@githubcom:XXX/XXXgit就是上面创建项目是生成的地址。现在打开你的项目网址,你就可以发现你的代码已经展示出来了。
第六,直接 用 git pull 将项目 从 github 上 同步 下来
有两种方法:
1、当git clone之后,直接git pull它会自动匹配一个正确的remote url
是因为在config文件中配置了以下内容:
1 [branch "master"]
2 remote = origin
3 merge = refs/heads/master
表明:
1git处于master这个branch下时,默认的remote就是origin;
2当在master这个brach下,使用指定remote和merge的git pull时,使用默认的remote和merge。
2、但是对于自己建的项目,并没有这块内容,需要自己配置。
1 git remote add -f origin login@gitsvgnuorg:/srv/git/projectgit //若是 执行过 第五步,那么 这一句 就 不用了
2 git config branchmasterremote origin //这一步 设置: 把 master 分支上 的 默认服务器地址 设为 origin指向的地址
3 git config branchmastermerge refs/heads/master //这一步 设置:如果当前分支是 master 分支,那么 git pull之后,直接 把 “从 origin 下载 下来的 code合并到 master分支上“
或者加上--global选项,对于全部项目都使用该配置。
建议:用第二种 方法,因为 如果 是 git clone的 项目,当 执行 git push 时,因为 在 git config里 url 是 只读方式
[remote "origin"]
fetch = +refs/heads/:refs/remotes/origin/
url = git://githubcom/xxx/xxxgit
//git@githubcom:XXX/XXXgit 这才是 读写方式
---------------------------------
如果提交了敏感信息,比如代码中设置的自己的密码什么的忘删除就上传上去了怎么办?
有两个方法:
1、重新修改本地代码,然后提交到服务器(覆盖),
2、直接登录 github 删除之前的项目。删除项目需要在GitHub网站上右上方找到admin按钮,进去后右边最下面有个删除的按钮,这样就可以删除了。
--------------------------
若是一个项目就托管在 GitHub 上。你可以把它的 URL 分享给每位对此项目感兴趣的人。本例的 URL 是>
说明:Git,Github,GitLab三者关系。
Git - 是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(svn是集中化的版本控制系统)。
GitHub - 是一个面向开源及私有软件项目的托管平台(也就一个网站),提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。它可以托管各种git库,并提供一个web界面。被戏称为“全世界最大的同性交流社区”。
GitLab - 基于Git的项目管理软件。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
当然啦国内开源中国出的“码云”,第一次听得人还以为是“马云”。我酱紫。它跟Github功能差不多,都能建立公有和私有的仓库。不过嘛感觉有点封闭,社区没有Github热闹。
有的人就说啦,我完全可以在Github或者GitLab上做远端代码仓库,为啥还要倒腾GitLab自建代码托管系统?就一个字: “代码安全性”(公司保密规定)。 对于公司来说,GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:
一、自建代码托管系统都需要做些什么工作?
1 选择开源软件
Git 大家族的 GitLab ,它提供了完善的用户权限管理,除了涵盖 Git 所有的功能,同时又提供方便的后台管理。分别有CE(社区版)、EE(企业版)、OM(RPM 包完整版)三个版本,目前市面上开发者们的普遍选择是使用 CE 版的源码,成本较低且相对方便。
2 硬件设施方面
如果是对于中小型企业来讲,自建机房一般成本较高,所以除非是大型集团企业。现在市面上存在太多的云服务器厂商,平均价格多在 5000元/年以上,都是不错的选择。
可能遇到的坑:
3由于个人眼界以及信息不对称,目前大部分公司都是在公司局域网内自行用GitLab搭建代码托管系统。部署Gitlab 是对服务器有配置要求的建议是CPU两核,内存4G以上。个人经验,勿喷啦。
二、搭建过程(这里仅是作者接触的,其实还有很多更高级的盘法)
Gitlab的服务构成
1搭建方法分为:传统方式安装GitLab和Docker安装(推荐)。
2传统安装过程(平台使用centos7安装)
安装和配置必要的依赖项:
安装Postfix以发送通知邮件:
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
添加GitLab镜像源并安装gitlab服务器:
注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口。
重置并启动GitLab:
访问 GitLab页面:如果没有域名,直接输入服务器ip和指定端口进行访问
获取/修改超级管理员root的密码:
最后我们使用默认的账号:root 和刚刚设置好的密码12345678进行登录。
后面的步骤配置SSH key,git Bash的global config等初始化设置跟GitHub一样。可是还有一点就是“汉化”。(英文不好的小伙伴)但是有一定风险,后面我打开报502错误。有两种方法:用git比对出英文与中文的补丁,将英文打补丁。第二是直接下载中文版,替换英文。
3Docker安装(推荐)
(1)配置docker镜像
直接从 docker hub 获取的话速度非常慢,所以需要配置一个镜像。我使用的是 daocloudio提供的加速,速度很快。
(2)获取 GitLab 镜像
下载完成后,查看镜像列表
(3)启动容器
3个--publish指定容器与主机的端口映射,分别是 >
作为程序员来讲,沉淀技术最好的方式,就是写博客。而大部分程序员在内心都有一个自己的博客情怀,就是想打造一款适合自己的个性化,现代化,干净整洁的博客系统。
而市面上有非常多的博客系统,但是程序员的情怀只有我们程序员懂,那就是简洁漂亮就行。我今天就给大家推荐两个不错的方式,来搭建自己的个人博客。
第一个:Hexo+GitHubPages
GithubPages可以被认为是用户编写的、托管在github上的静态网页。使用GithubPages可以为你提供一个免费的服务器,免去了自己搭建服务器和写数据库的麻烦。此外还可以绑定自己的域名。
Hexo是一个快速、简洁且高效的博客框架。Hexo使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
两者相结合,可以快速,免费的搭建一款非常漂亮简介的博客系统。Hexo提供了格式各种,各种各样的博客主题,随便你挑选,绝对有一款可以让你非常满意。
具体的搭建方式,内容太多了,我就不介绍了。大家在网上一搜,一堆教程,一会就能够搭建完成。
第二个:一个开源的博客系统
Halo,它是一款现代化的个人独立博客系统。
Halo[helo],意为光环。当然,你也可以当成拼音读(哈喽)。它轻快,简洁,功能强大,是使用Java开发的博客系统。
安装和启动也非常简单
它配有周边产品,可以增加后台,app,独立评论模块,主题仓库等。
1 linux和windows端分别安装git,其中linux中可以用yum安装[root@node0~]#yum install git
git的默认安装路径在/usr/libexec/git-core
[root@node0 git-core]#cd /usr/libexec/git-core
[root@node0 git-core]#git --version
git version 171
2设置linux端git的用户名和密码
[root@node0 git-core]# groupadd git
[root@node0 git-core]# useradd wang -g git
[root@node0 git-core]# passwd wang
New password:
3在服务器端创建远程仓库
[root@node0 ~]# mkdir -p /mnt/gitrep/wjf
[root@node0 ~]# cd /mnt/gitrep/wjf/
[root@node0 wjf]# git init
Initialized empty Git repository in /mnt/gitrep/wjf/git/
把仓库所属用户改为wang(git的用户名)
[root@node0 wjf]# chown -R wang:git git/
注:chown将指定文件的拥有者改为指定的用户或组 -R处理指定目录以及其子目录下的所有文件
4在windows客户端克隆仓库
$ git clone wang@19216811160:/mnt/gitrep/wjf/git
Cloning into 'wjf'
The authenticity of host '19216811160 (19216811160)' can't be established
RSA key fingerprint is SHA256:MgWCWF1m2tI
Are you sure you want to continue connecting (yes/no/[fingerprint]) yes
Warning: Permanently added '19216811160' (RSA) to the list of known hosts
wang@19216811160's password:
第一次连接远程仓库,出现黑体部分,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,键入yes,然后输入远程仓库的密码就可以了。
5实际中也通常通过设置公钥的方式来连接远程仓库,这样就不用每次连接都需要密码了。
设置公钥:
1在windows客户端的gitbash中生成用户私钥和公钥
$ ssh-keygen -t rsa -C "emailname@emailcom"
在c盘用户路径下的/ssh文件夹下会生成私钥id_rsa和公钥id_rsapub
2linux端
首先 Git服务器打开RSA认证,即,修改/etc/ssh/sshd_config,将其中的以下三项打开
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile ssh/authorized_keys
然后,将客户端生成的公钥给到服务器端
即,将公钥给到 home/wang(git的用户名)/ssh/authorized_keys
[root@node0 ~]# cd /home/wang
[root@node0 wang]# mkdir ssh
[root@node0 wang]# chmod 777 ssh
[root@node0 wang]# touch ssh/authorized_keys
在windows客户端的gitbash中 执行:
$ ssh wang@19216811160 'cat >> ssh/authorized_keys' < ~/ssh/id_rsapub
然后在linux端:
[root@node0 wang]# chmod 600 ssh/authorized_keys
[root@node0 wang]# chmod 700 ssh
[root@node0 wang]# chown wang:git ssh
[root@node0 wang]# chown wang:git ssh/authorized_keys
至此,以后再连接远程仓库就不需要密码了。
若仍需要密码,可以查看ssh连接日志/var/log/secure:
常见连接失败原因:Authentication refused: bad ownership or modes for directory /home/wang/ssh
这时需要检查该目录的所属用户和读写权限等级是否符合要求。公钥以及ssh文件的权限应该属于git的用户和用户组,读写权限等级ssh 700,authorized_keys 600
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)