分布式版本控制体系

打印 上一主题 下一主题

主题 844|帖子 844|积分 2532

1.Git,GitHub,GitLab的区别

Git是一个开源的分布式版本控制体系,用于灵敏高效第处理任何或小或大的项目。是Linus Torvalds 为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Github是在线的基于Git的代码托管服务。GitHub是2008年由Ruby on Rails编写而成。
GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,只有付费账户可以创建私有的代码仓库。Gitlab解决了这个问题,可以在上面创建免费的私人repo。
2.Git与SVN区别

GIT不仅仅是个版本控制体系,它也是个内容管理体系(CMS),工作管理体系等。
如果你是一个具有利用SVN配景的人,你需要做一定的头脑转换,来适应GIT提供的一些概念和特征。
2.1 Git与SVN区别


  • 1.GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制体系,例如SVN,CVS等,最焦点的区别。
  • 2.GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制体系都是把文件的元信息隐藏在一个雷同.svn,.cvs等的文件夹里。
  • 3.GIT分支和SVN的分支差别:分支在SVN中一点不特别,就是版本库中的另外的一个目次。
  • 4.GIT没有一个全局的版本号,而SVN有:现在为止这是跟SVN相比GIT缺少的最大的一个特征。
  • 5.GIT的内容完备性要优于SVN:GIT的内容存储利用的是SHA—1哈希算法。这能确保代码内容的完备性,确保在遇到磁盘故障和网络问题时低沉对版本库的破坏。
3 部署Git服务

创建git仓库
git-server上的操作:
  1. [rooteqfedu.com-]#yum install gitgit-core gitweb-y
  2. [rooteqfedu.com~]#useraddgit
  3. [rooteqfedu. com -] passwd git
  4. [rooteqfedu. com -] mkdir /git-root/
  5. [rooteqfedu. com -] cd /git-root/
  6. [rooteqfedu. com git-root]# git init --bare shell.git  ##shell名字可以改
  7. Initialized empty Git repository in /git-root/shell.git/
  8. 注意:
  9. git init 和 git init --bare 的区别:
  10. 使用——bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面.
  11. 用“git init”初始化的版本库用户也可以在该目录下执行所有git方面的操作。但别的用户在将更新push上来的时候容易出现冲突。
  12. 使用“git init——bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误("This operation must be run in a work tree")这个就是最好把 远端仓库初始化成bare仓库的原因
  13. [rooteqfedu com git-root]# chown -R git: git shell.git
  14. [rooteqfedu. com git-root]# su -git
  15. [giteqfedu. com -] ssh-keygen -t rsa
  16. [giteqfedu. com -]s cd .ssh/
  17. [giteqfedu. com ssh]s cp id_rsa. pub authorized_keys
  18. [giteqfedu. com ssh]s vim authorized_key
  19. [giteqfedu. com ssh]$ logout
复制代码
git仓库测试
git-client上的操作
  1. [rooteqfedu.com~]#ssh-keygen
  2. [rooteqfedu.com-]#ssh-copy-id git@192.168.1.178
  3. [rooteqfedu.com-]#gitclone git@192.168.1.102:/git-root/shell.git
  4. [rooteqfedu. com ~] 1s
  5. rh shell
  6. [rooteqfedu com -] cd shell/
  7. [root@qfedu.comshell]#vimtest.sh
  8. [rooteqfedu. com shell]# git add test.sh
  9. [rooteqfedu com shell]# git config --global user.email "youeexample. com"
  10. [rooteqfedu. com shell]# git config --global user. name "Your Name"
  11. [rooteqfedu com shell]# git commit -m 'first commit'
  12. [master (root-commit) 33c5fbf] first commit
  13. 1 file changed, 2 insertions(+)
  14. create mode 100644 test1.sh
  15. [rooteqfedu. com shell]# git push origin master
  16. Counting objects: 3, done.
  17. Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done.
  18. Total 3 (delta 0), reused 0 (delta 0)
  19. To git@192.168.1.178:/git-root/shell.git
  20. * [new branch] master - master
复制代码
4. Git工作流程

一般工作流程如下:

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

5. git基本概念


  • .工作区:就是你在电脑里能看到的目次。
  • .暂存区:英文 0 月 stage ,或 1 ndex 。一般存放在” git 目次” ' T 的 index 文件( . gitlindex )中,所以我们把暂存区有时也叫作索引( index )。
  • · 版本库:工作区有一个隐藏目次. git ,这个不算工作区,而是 Git 的版本库。工作区、版本库中的暂存区和版本库之间的关系的示怠图:


  • 。图中左侧为工作区,右侧为版本库.在版本库中标志为” index ”的区域是暂存区( stage , indeX 标志为” , master " ,的是 master 分支所代表的目次树。
  • .图中我们可以看出此时””日 〔 AO ”实际是指向 master 分支的一个””游标”。所以图示的命令中出现日 〔 AO 的地方可以用 master 来替换。
  • · 图中的。 bjects 标识的区域为 Git 的对象库,实际位于’ " . 91 口。 bjects ”目次下,内里包含了创建的各种对象及内容。
  • · 当对工作区修改(或新增)的文件执行” t add ”命令时,暂存区的目次树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的旧被记录在暂存区的文件索引中。
  • · 当执行提交操作( git commit )时,暂存区的目次树写到版本斑(对象库)中, master 分支会做相应的更新。即 master 指向的目次树就是提交时暂存区的目次树。
  • · 当执行” . git reset H EAD ' ”命令时,暂存区的目次树会被重写,被 master 分支指向的目次树所替换,但是工作区不受影响。
  • · 当执行” , gi t rm 一 cached < file > ”命令时,会直接从暂存区删除文件,工作区则不做出改变。
  • · 当执行” , gi t checkout . " ’大概” t checkout 一; file > " ’命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很伤害,会清除工作区中未添加到暂存区的改动。
  • .当执行” " git checkout HEAD . ' ”大概” ' git checkout HEAD < file > ”命令时,会用 HEAD 指向的 master 分支中的全部大概部门文件替换暂存区和以及工作区中的文件。这个命令也是极具伤害性的,由于不光会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
6 git客户端安装利用

6.1 Git安装设置


6.2 git设置


6.2.1 Git用户信息


6.2.2 文本编辑器


6.2.3 差异分析工具


6.2.4 查看设置信息


6.3 Git利用

6.3.1 ssh链接


6.3.2 http链接











4、 辩说解决


7 Gitlab Server 部署

1、环境设置
关闭防火墙、SELinux
开启邮件服务

















用户天生公钥













摘自

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表