什么是git服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是git服务器相关的知识,希望对你有一定的参考价值。

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git的主要功能:

1、查看邮件或者通过其它方式查看一般开发者的提交状态。

2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

3、向公共服务器提交结果,然后通知所有开发人员。



扩展资料:

Git的优缺点:

优点:

1、适合分布式开发,强调个体。

2、公共服务器压力和数据量都不会太大。

3、速度快、灵活。

4、任意两个开发者之间可以很容易的解决冲突。

5、离线工作。

缺点:

1、资料少(起码中文资料很少)。

2、学习周期相对而言比较长。

3、不符合常规思维。

4、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

参考资料来源:百度百科-Git

参考技术A Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!
那什么是版本控制系统?
如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。
看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。
更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。
于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
这个软件用起来就应该像这个样子,能记录每次文件的改动:

版本 用户 说明 日期

1 张三 删除了软件服务条款5 7/12 10:38
2 张三 增加了License人数限制 7/12 18:09
3 李四 财务部门调整了合同金额 7/13 9:51
4 张三 延长了免费升级周期 7/14 15:17
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

搭建Git服务器
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步,安装git:
$ sudo apt-get install git

第二步,创建一个git用户,用来运行git服务:
$ sudo adduser gi

第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
$ sudo chown -R git:git sample.git

第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bas

改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

剩下的推送就简单了。
管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。
这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。
管理权限
有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。Gitolite就是这个工具。
这里我们也不介绍Gitolite了,不要把有限的生命浪费到权限斗争中。
参考技术B git是分布式的版本管理系统,可以提供git仓库的就叫git服务器了。本回答被提问者采纳

git实战

1.什么是版本管理

  (多人协作)项目中常见的问题:

  • 代码放在什么地方 ??
  • 同步(到服务器),代码的冲突问题 ??
  •  服务器访问权限问题 ??
  • (代码)服务器内容修改的细节 ??
  •  项目版本的发布 ??

  技术图片

  版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

  版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。
具体来说,在每一项开发任务中,都需要首先设定开发基线,确定各个配置项的开发初始版本,在开发过程中,开发人员基于开发基线的版本,开发出所需的目标版本。当发生需求变更时,通过对变更的评估,确定变更的影响范围,对被影响的配置项的版本进行修改,根据变更的性质使配置项的版本树继续延伸或产生新的分支,形成新的目标版本,而对于不受变更影响的配置项则不应发产生变动。同时,应能够将变更所产生的对版本的影响进行记录和跟踪。必要时还可以回退到以前的版本。例如当开发需求或需求变更被取消时,就需要有能力将版本回退到开发基线版本。在曾经出现过的季度升级包拆包和重新组包的过程中,其实就是将部分配置项的版本回退到开发基线,将对应不同需求的不同分支重新组合归并,形成新的升级包版本。
版本控制是软件配置管理的核心功能。所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合软件开发流程的各个阶段。还需要定义、收集一些元数据来记录版本的辅助信息和规范开发流程,并为今后对软件过程的度量做好准备。当然如果选用的工具支持,这些辅助数据将能直接统计出过程数据,从而方便软件过程改进活动的进行。对于配置库中的各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来说,对于基线版本之前的各个版本都应处于被锁定的状态,如需要对它们进行变更,则应按照变更控制的流程来进行操作。
  总结多人开发的时候怎么管理这些代码,文件等。

1.什么是git

  Git(读音为/g?t/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  版本管理器,管理代码的。

      1.1git工作流程

       常规工作流程如下:

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

  工作流程示意图:

  技术图片

  1.2.git操作流程图

  技术图片

2.git注册

    注册地址:https://github.com/

 技术图片

  我们点击右上角的sign up (注册的意思),然后会跳到注册页面。

  step1:

  第一步是填写注册的名字(name),

  第二行是填注册的邮箱(email),

  第三步是填写密码(password),

  填写完后点击create account

  技术图片

  step 2是选择计划(choose your plan),这里有两种选择,

  一是创建公开仓库(repository),二是创建个人仓库(private),但创建个人需要费用,因此,我们选择第一种。

  这里我们还可以创建(Organizations)。选好后,点击continue。

  技术图片

 

到此,我们就创建完了。

3.git客户端安装与使用

  3.1.Git-2.20.1-64-bit.exe安装与简单使用】  

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  安装完,几乎全是默认下一步!

  3.2.Git命令简单使用

   1.用户信息配置

   配置个人的用户名称和电子邮件地址:

   $ git config --global user.name "wfd360"
   $ git config --global user.email [email protected]

  技术图片

  如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

  如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

  2.查看配置信息

  要检查已有的配置信息,可以使用 git config --list 命令:

  技术图片

  3.git创建仓库

  执行命令:git init myWork,在当前目录下创建一个名为myWork的仓库.

  技术图片

  初始化后,会在 myWork目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

  如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交,

  创建好的文件夹如图:

  技术图片

  现在我们演示在,myWork中创建一个a1.txt文件,然后在提交到版本库里面,命令如下

  git add a1.txt

  git commit -m ‘提交a1.txt‘

     技术图片

  4.从远程仓库拉取代码

  我们使用 git clone 从现有的远程 Git 仓库中拉取代码

  语法: git clone 远程地址

  案例:git clone https://github.com/bangbangw/testGit.git

  技术图片

  git的一些常规简单命令就介绍到这里,如果需要了解更多,可以查看官方文档:git完整命令手册:https://git-scm.com/docs

  弄了一堆命令,是不是感觉git咋个这么麻烦..........no...no....

  更更重要的是,我们作为程序员,其实完全没必要掌握这么一大堆命令,毕竟git作为一个程序开发的辅助工具,只要我们能用,不妨碍工作,怎么简单就怎么来,

  这就是我们在平时开发中经常使用的强大工具小乌龟客户端:TortoiseGit......

  3.2.TortoiseGit-2.7.0.0-64bit.msi安装与使用

  tortoiseGit下载地址:https://download.tortoisegit.org/tgit/

  技术图片

  下载完成后,同普通常规的软件安装方式一样,只需傻瓜式的直接下一步就可以了.

  1.检查是否安装成功,右键鼠标,如果出现如下图标,则安装成功

  技术图片

  2.检查受版本控制的文件是否有颜色标志,以刚才的建立的myWork仓库为例

  技术图片

  3.解决没有颜色图标

  TortoiseGit显示图标不正常

  Windows Explorer Shell支持的Overlay Icon最多15个,除去系统使用,只有11个。如果其他程序占用了,那么小乌龟就无法显示了。注册表定位到:

  Win+R-->regedit-->注册表:
  HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellIconOverlayIdentifiers。修改Tortoise项的名称(比如在名称前加0,会按照数字优先,将TortoiseGit相关的排在前面),让他们排到前面然后重启资源管理器就能正常显示了。

  技术图片

       4.各图标颜色的含义

  1. 正常的文件夹或文件

    技术图片
  2. 被修改过的文件夹或文件

    技术图片
  3. 新添加的文件夹或文件

    技术图片
  4. 未受控的文件夹或文件

    技术图片
  5. 忽略不受控的文件夹或文件

    技术图片
  6. 删除的文件夹或文件

    技术图片
  7. 有冲突的文件夹或文件

    技术图片
     

  5.简单使用

  1.拉取代码

   技术图片

   远程仓库地址:https://github.com/bangbangw/testGit.git

   技术图片

   技术图片

   拉取下到本地的文件如图

   技术图片

     2.我模拟在testGit下进行工作,完成一个基本流程

   创建文件 a.txt ----->提交----->修改------>提交----->查看远程服务器文件是否存在

   1.创建文件 a.txt 

   技术图片

   2.使用小乌龟提交

    在当前工作目录下,鼠标右键,如下图

     技术图片

          选择ok

  技术图片

  这时候已纳入版本管理,然后在点击commit,提交到本地仓库

  技术图片

  填写提交的备注信息等...,然后点击commit

  技术图片

  点击push,将本地仓库更新到远程仓库

  技术图片

  点击ok

  技术图片

  输入远程仓库用户名

  技术图片

  输入远程仓库密码

  技术图片

  推送到远程仓库成功

  技术图片

  查看远程仓库是否有文件

  技术图片

  到此,一个从本地创建文件到推送的远程仓库的流程完成.

  推送完成后本地文件图标如图

  技术图片

  接下来演示,修改a.txt,然后在推送到远程仓库.

  修改a.txt文件内容后,图标变化如图

  技术图片

      然后在鼠标右键,按照如下选择

   技术图片

  填写提交备注,然后点击commit,接下来的流程与刚才一样,根据提示对话框提示一步步往下走即可...

  技术图片

  到此TortoiseGit的常规用法就介绍到这里.

4.idea集成git

5.git分支、合并与使用

6.git标签与使用

 

以上是关于什么是git服务器的主要内容,如果未能解决你的问题,请参考以下文章

在Linux下搭建Git服务器的方法是什么样?

Git

git

git跟svn 服务端对比

GIT

什么是 Git