老铁们,大家好,相信还有很多朋友对于git服务器有哪些和什么是的相关问题不太懂,没关系,今天就由我来为大家分享分享git服务器有哪些以及什么是的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
一、怎么用git部署
1.下面我们以ubuntu server为例,介绍一下如何使用Git来管理项目代码,并且部署代码的web站点目录。
2. 1.准备工作:
1台拥有SSH权限的服务器(LNMP,git,ssh安装配置)
一台装有git客户端的PC(本文实际在windows下的msysgit操作)
3. LNMP,git,ssh安装配置
#安装LNMP$ wget-c tar zxvf lnmp1.0-full.tar.gz&& cd lnmp1.0-full&&./ubuntu.sh#安装Git ssh$ sudo apt-get install git git-core ssh
windows下安装 msysgit
4. 2.在你的web服务器上建立git裸仓库、编写hooks、导入用户公钥、设置目录权限
在服务器上建立一个用户,这里命名为git,修改git的密码,并禁用shell登录
$ sudo useradd git#修改git的密码$ passwd git#禁用shell登录$ sudo vi/etc/passwd修改git:x:1001:1001:,,,:/home/git:/bin/bash为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
初始化Git仓库,建立git裸仓库,设置hook脚本(web目录需要git用户有权限,否则git的hook脚本将没有办法执行操作)
$ cd/opt$ mkdir git$ cd git$ sudo git init--bare demosite.git#文件夹权限$ sudo chown-R git:git demosite.git$ cd/demosite.git/hooks$ sudo vi post-receive写入以下内容#!/bin/shGIT_WORK_TREE=/home/root/.demosite. git checkout-f#写入权限$ chmod+x post-receive#建立web目录,如果目录不存在,git不会创建目录的$ mkdir/home/root/.demosite.-p# web目录的文件夹权限$ sudo chown-R git:git/home/root/.demosite.
创建证书登录
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
客户端用户证书生成请参考下文。
5. 3.在git客户端生成公钥、导入服务器、coding、add、mit、push
生成公钥,导入服务器
$ ssh-keygen-t rsa-C""一路回车或者设置密码windows下回提示在哪里生成了密钥windows8下提示在C:\Users\username\.ssh下,linux的话会在~/.ssh下进入目录,打开id_rsa.pub,复制里面的key,添加到上文提到的web服务器的/home/git/.ssh/authorized_keys里。
clone coding add mit push
$ git clone git@serverip:/opt/git/demosite.gitCloning into'demosite'...warning: You ear to h*e cloned an empty repository.$ cat'hello world!'> index.html$ git add index.html$ git mit-m'first mit'$ git remote add origin ssh://git@serverip:/opt/git/demosite.git$ git push origin master
这里使用公钥来做权限验证,运行git里的hook的脚本权限为git用户的权限,当然你也可以使用自己在server上的用户来进行git操作,前面对于git用户的操作和客户端公钥的生成则可以省略,在git上脚本的执行权限则是你登录用户的权限,相应的origin的设置应该为:
$ git remote add origin ssh://yourusername@serverip:/opt/git/demosite.git
这时候每次push将需要输入密码验证。
忽略某些文件
你可以在你的顶层工作目录中添加一个叫".gitignore"的文件,来告诉Git系统要忽略掉哪些文件,下面是文件内容的示例:
使"git add."和"git mit-a"变得实际可用。
#以'#'开始的行,被视为注释.#忽略掉所有文件名是 foo.txt的文件.foo.txt#忽略所有生成的 html文件,*.html# foo.html是手工维护的,所以例外.!foo.html#忽略所有.o和.a文件.*.[oa]#Eclipse.settings/*.buildpath.project
二、什么是***git***服务器
1、git是一种分布式的版本管理系统,Linux的创造者Linus写的。
2、GitHub是基于git的代码库托管站,也算是程序员的SMS(以码会友),其中一个主要的开源代码发布或托管站
3、git的作用就是对文件进行版本管理,方便在不同版本进行切换修改,类似文件分不同时间备份让后需要时找回其中一份代替,不过更方便使用。
4、GitHub某种程度上就是代码的网盘,也有开源开发商作为代码发布、存放、征集Bug和意见用。
5、git的特点:
1)就是云的概念,代码可以存在云端git的网站上,就像我们在各种设备间都能浏览到自己存储的网盘文件一样,我们在各个设备间都能访问到自己的代码。
2)它的社交属*。因为代码是开源的,每个人都可以浏览别人的项目并提出意见,而且它像微*一样,你能粉别人,也能被别人粉。如果你是大牛,如果你或者你的项目够有趣,你就会有很多粉丝,你的项目也会被更多的人star。
3)它能给团队合作带来很大帮助。现在有些公司就是用github来开发项目的。github允许多人多分支的工作,并且标示别人的修改和备注,最后还能合并。
三、什么是git服务器
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git是 Linus Torvalds为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。
Git的主要功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
扩展资料:
Git的优缺点:
优点:
1、适合分布式开发,强调个体。
2、公共服务器压力和数据量都不会太大。
3、速度快、灵活。
4、任意两个开发者之间可以很容易的解决冲突。
5、离线工作。
缺点:
1、资料少(起码中文资料很少)。
2、学习周期相对而言比较长。
3、不符合常规思维。
4、代码保密*差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
参考资料来源:百度百科-Git
四、git拉取远程代码到本地
git拉取代码到本地的方法是:
打开git命令窗口,输入命令【git clone github仓库】,然后回车即可拉取代码到本地仓库。
在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git,能够上传和下拉最新代码。
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Torvalds开始着手开发 Git是为了作为一种过渡方案来替代 BitKeeper。
Git的功能特*:
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。