GitHub和GitLab

一、Git

1.在linux安装命令

sudo apt-get install git-all

Linux 上用二进制安装程序来安装 Git,可以使用发行版包含的基础软件包管理工具来安装。 

如果以 Fedora 上为例,你可以使用 yum:

$sudo yum install git

如果你在基于 Debian 的发行版上,请尝试用 apt-get:

$sudo apt-get install git


2.linux的Git配置。

Git有一个工具被称为git config,它允许你获得和设置配置变量;

这些变量可以控制Git的外观和操作的各个方面。

这些变量可以被存储在三个不同的位置:

1./etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。

2.~/.gitconfig 文件 :具体到你的用户。你可以通过传递--global 选项使Git 读或写这个特定的文件。

3.(.git/config)文件:位于git目录的config文件 :无论你当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config中的值覆盖了在/etc/gitconfig中的同一个值。


二、Github

Github的意义和工作原理:

        如何让在不同系统上的开发者协同工作?于是,集中化的版本控制系统(Centralized Version Control Systems)应运而生。这类系统,诸如CVS、Subversion等,都有一个单一的集中管理服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。

        现在,每个人都可以在一定程度上看到项目中的其他人正在做什么,管理员也可以轻松掌握每个开发者的权限,看到每个人每天的提交记录。这样做最大的缺点就是中央服务器的单点故障。如果宕机一小时,那么在一小时内所有人都无法提交更新,也就无法协同工作。要是中央服务器的磁盘发生故障,碰巧没有备份或者备份不及时,就会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,而被客户端提取出来的某些快照数据除外,但是不能够保证所有的数据都已经有人事先完整的提取出来。

        分布式版本管理系统就是为了解决这个单点问题,在这类系统中,像Git、Mercurial、Bazaar以及Darcs等,客户端并不只是提取最新的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。更进一步,这类系统都可以指定和若干不同的远端代码仓库进行交互。因此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的协作流程。

        也就是说,每次提交版本变动的时候,git会保存一个快照(snapshot)。如果文件没有被更改,git也不会再次保存,而是提供一个到原来文件的链接。这样一来,git更像是一个小型的文件系统。此外,git的所有操作都可以是本地的,仅仅在将新版本的内容上传到服务器上时才需要连接网络.git里面使用了SHA-1检验,因此,你几乎不可能瞒过git而对项目代码进行任何修改。git只会添加数据,而不会删除数据。因此不要担心我们做一些测试时会破坏原有的数据。


git的三种状态:已提交committed,已更改modified,和已标记staged

已提交表示数据已经安全存储在本地数据库,

已修改表示已经修改了文件,但还没有提交到数据库,

已标记表示已经在当前版本标记了一个更改的文件,以便进入下一次提交的快照。


一般版本控制系统:


Git:



1.Github简介

Git是版本控制系统,Github是在线的基于Git的代码托管服务。

GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,但是付费账户也可以创建私有的代码仓库。

2.在eclipse使用Github

在eclipse安装Git插件,一般ecpliise都有自带。

在Eclipse中选择help->Eclipse Marketplace,在search中输入egit,找到后安装即可 

(1)打开GitHub官网

        https://github.com

(2)如有账号选择Sign in,输入账号和密码登录或输入email和密码登录

        没有账号选择sign up for GitHub 填写用户名,email和密码注册账号

(3)在主页面选择new peoject,进入create a new repository界面,填写repository name,选择public(公共的)或者private(私有 的),(注:在GitHub上使用private是需要钱的)。其他项可以选填。填写完毕后选择create repository

(4)创建数据库成功,选择URL的地址复制

(5)打开eclipse 选择项目,右击选择Team->share project... ,勾选  Use or create repository in parent folder of project选项,点击  Create Repository  ->  Finish。这时候打开该项目则发现项目多了一个.git文件夹。

(6)再次选择该项目右击->Team->commit,可以在commit message 填写上传的项目名,在file文件框选择需要上传的文件,点击commitandpush,进入提交页面,在URI的文本框输入刚才在github上复制的地址,在username和password上填写自己Github的用户名和密码,点击next->next-finish。开始上传

(7)ecpilse右下角显示上传进度,弹出成功提示push results:github提交仓库地址,代表成功上传,就可以在github上看到自己上传的项目了。

这是上传最简单也是我常用的方式,还有其他方式可以参考:

https://blog.csdn.net/qiyeliuli/article/details/51798725

三、Gitlab

Github有个小缺陷 (也不能算是缺陷吧), 就是你的repo(repository的缩写,表示“仓库”)都需要public(公开), 如果你想要创建private(私人)的repo, 那得付钱。

不过, 幸好, Gitlab解决了这个问题, 可以在上面创建免费的私人repo。

(1)gitlab上传代码

https://blog.csdn.net/xubaifu/article/details/78656016

操作与github上传基本相同,gitlab可以免费创建私有的仓库,github不免费。

四、Github和Gitlab的区别

两者都是基于web的Git repositories(仓库),拥有流水线型的web开发流程,它们为开发团队存储、分享、发布、测试和合作web开发项目提供了中心化的、云存储的场所。Git版本控制——对于多人共同开发一个project来说非常重要——它提供了分享开源项目的平台。

GitLab拥有更多的特性,它可以让开发团队拥有更多的安全性和灵活性的选择。

GitLab的优势 
GitLab拥有GitHub拥有的一切,但他拥有更多——让团队对它们的repositories拥有更多的控制,它的特色:

  • 非常便捷的用户界面,在同一界面上获取到:projects,最近的projects,用户,最近的用户,群组和状态;

  • 允许设置仓库权限是公用的还是私有的;

  • “Snippet support”让用户分享一个project的部分代码,而不是整个project。

  • 受保护的分支是一种提升代码安全性的新方法,它们允许用户设置project的获取权限,所以一个团队中只有特定的人可以push,force push或者删除一个分支的代码。

  • Authentication levels更进一步的提升安全性,允许用户给人读写以外的权限。举例来说,你可以给一个组员跟踪变动的权限却不给他获取代码的权限。

  • 你可以设置获取到团队的整体的改进进度,而不是你个人的进度。

  • 开发者通过打上“仍在进行中”状态标签让其他成员知道代码没有完成,从而阻止未完成的代码合并到其他的代码中

  • “innersourcing”公司的资源如果员工不再权限范围内,将不知道这个资源的存在。




猜你喜欢

转载自blog.csdn.net/fangjun_lj/article/details/80374744