分布式版本控制系统 Git 详解(二)( git 的安装 及 使用 + gitlab的部署)

git的部署及使用

1.安装git(超简单)

yum install git -y 

在这里插入图片描述

2.获取 Git 仓库通常有两种方式,在这里我们先采用第一种方法,后面再演示第二种

将尚未进行版本控制的本地目录转换为 Git 仓库。
从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone 

3.初始化版本库(把本地目录转化为git仓库)

$ mkdir demo
$ git init
	Initialized empty Git repository in /home/git/demo/.git/ 
$ ls .git/
	branches  config  description  HEAD  hooks  info  objects  refs

.git目录是git跟踪管理版本库的,没事别瞎溜达!

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
4.用户信息

安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

再次强调,如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。
当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

很多 GUI 工具都会在第一次运行时帮助你配置这些信息。

在这里插入图片描述在这里插入图片描述5.检查当前文件状态

现在我们的机器上有了一个 真实项目 的 Git 仓库,并从这个仓库中检出了所有文件的 工作副本。 通常,你会对这些文件做些修改,每当完成了一个阶段的目标,想要将记录下它时,就将它提交到到仓库。

请记住,你工作目录下的每一个文件都不外乎这两种状态:已跟踪 或 未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改,已修改或已放入暂存区。简而言之,已跟踪的文件就是 Git 已经知道的文件。

工作目录中除已跟踪文件外的其它所有文件都属于未跟踪文件它们既不存在于上次快照的记录中,也没有被放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态,因为 Git 刚刚检出了它们, 而你尚未编辑过它们。

编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。 在工作时,你可以选择性地将这些修改过的文件放入暂存区,然后提交所有已暂存的修改,如此反复。

$ git status
$ git status -s		//简化输出

状态简览

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

在这里插入图片描述在这里插入图片描述
此时处于未跟踪状态。(untracked)

未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;

Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”。 这样的处理让你不必担心将生成的二进制文件或其它不想被跟踪的文件包含进来。
在这里插入图片描述在这里插入图片描述
6.跟踪新文件

使用命令 git add filename开始跟踪一个文件。
在这里插入图片描述在这里插入图片描述执行git status命令时
只要在 Changes to be committed 这行下面的,就说明是已暂存状态。 如果此时提交,那么该文件在你运行 git add 时的版本将被留存在后续的历史记录中。

7.提交更新

现在的暂存区已经准备就绪,可以提交了。 在此之前,请务必确认还有什么已修改或新建的文件还没有 git add 过, 否则提交的时候不会记录这些尚未暂存的变化。

这些已修改但未暂存的文件只会保留在本地磁盘。 所以,每次准备提交前,先用 git status 看下,你所需要的文件是不是都已暂存起来了, 然后再运行提交命令 git commit
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

8.修改的已暂存文件
现在我们来修改一个已被跟踪的文件
在这里插入图片描述在这里插入图片描述
9.查看已暂存和未暂存的修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。 输出中有两栏,=左栏指明了暂存区的状态,右栏指明了工作区的状态

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

10.忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。

文件 .gitignore 的格式规范如下:

所有空行或者以 # 开头的行都会被 Git 忽略。

可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。

匹配模式可以以(/)开头防止递归。

匹配模式可以以(/)结尾指定目录。

要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。

 星号(*)匹配零个或多个任意字符;
 [abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 
 问号(?)只匹配一个任意字符;
 如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 09 的数字)。
 使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
11.跳过使用暂存区域-

尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。 Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

在这里插入图片描述
这个testfile是之前创建的。
在这里插入图片描述在这里插入图片描述
12.移除文件

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。 可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分(也就是 未暂存清单)看到

在这里插入图片描述在这里插入图片描述另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。 为达到这一目的,使用 --cached 选项:

$ git rm --cached filename

13.取消暂存的文件

$ git reset HEAD README.md

在这里插入图片描述14.撤销对文件的修改

$ git checkout -- README.md

在这里插入图片描述

15.查看提交历史

$ git log
$ git log -p -2
$ git log --stat
$ git log --pretty=oneline

不传入任何参数的默认情况下,git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。 正如你所看到的,这个命令会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明。

常用的参数:
其中一个比较有用的选项是 -p 或 --patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交

在这里插入图片描述在这里插入图片描述

另一个非常有用的选项是 --pretty。 这个选项可以使用不同于默认格式的方式展示提交历史。 这个选项有一些内建的子选项供你使用。 比如 oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用

在这里插入图片描述最有意思的是 format ,可以定制记录的显示格式。 这样的输出对后期提取分析格外有用——因为你知道输出的格式不会随着 Git 的更新而发生改变。

在这里插入图片描述
16.版本回退

$ git reflog
$ git reset --hard efa267a

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

git 远程仓库的使用

远程仓库:注册github帐号,并新建一个仓库。(建立公有的,私有的收费)
在这里插入图片描述

在这里插入图片描述

在这里我们使用ssh 认证的方式,登录远程的github仓库,也可以选择https 不过需要每次认证。
在这里插入图片描述在这里插入图片描述在这里插入图片描述得到公钥后将其上传至guthub仓库
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 推送本地仓库内容到github

$ git remote add origin https://github.com/westos007/git.git								//关联远程仓库
$ git push -u origin master		//第一次推送需要加 -u参数

在这里插入图片描述在这里插入图片描述
克隆远程仓库
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

gitlab代码仓库

官网:https://about.gitlab.com/install/

软件下载(官方下载慢,推荐使用国内镜像站点)
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

软件安装: (官方推荐至少4G内存)
# yum install -y curl policycoreutils-python openssh-server

# yum install -y gitlab-ce-12.8.5-ce.0.el7.x86_64.rpm

# vim /etc/gitlab/gitlab.rb		
external_url 'http://172.25.0.11'		//访问gitlab的地址

# gitlab-ctl  reconfigure			//重载服务

登录gitlab: 
http://172.25.0.11 		//用户:root 第一次登录需要强制修改密码

常用命令:

gitlab-ctl start    		# 启动所有 gitlab 组件

gitlab-ctl stop        		# 停止所有 gitlab 组件

gitlab-ctl restart       	 	# 重启所有 gitlab 组件

gitlab-ctl status        		# 查看服务状态

gitlab-ctl reconfigure     	# 重载服务

gitlab-ctl tail        		# 查看日志

1.下载软件包
在这里插入图片描述2.在这里插入图片描述3.在这里插入图片描述4.在这里插入图片描述在这里插入图片描述5.在这里插入图片描述
要安装gailab,官方推荐内存是4g.

安装完成之后,可以在浏览器访问80端口。

在这里插入图片描述在这里插入图片描述设置语言为中文
在这里插入图片描述在这里插入图片描述新建项目为私有,会自行进行初始化
在这里插入图片描述
进行克隆
在这里插入图片描述
在设置里进行ssh密钥认证
在这里插入图片描述和github的操作没什么区别
在这里插入图片描述
点击克隆项目,就可成功
在这里插入图片描述在这里插入图片描述进入到git目录,可以操作git命令。

在这里插入图片描述把本地的目录push到私有仓库就可以。

github和gitlab的区别

GitHub 和 GitLab 都是基于 web 的 Git 仓库,使用起来二者差不多,它们都提供了分享开源项目的平台,

为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。

GitHub 作为开源代码库,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管平台,GitHub 同时

提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的

GitLab 解决了这个问题,你可以在上面创建私人的免费仓库

GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比较 GitHub , 它有不少特色:

(1) 允许免费设置仓库权限;

(2) 允许用户选择分享一个 project 的部分代码;

(3) 允许用户设置 project 的获取权限,进一步提升安全性;

(4) 可以设置获取到团队整体的改进进度;

(5) 通过 innersourcing 让不在权限范围内的人访问不到该资源;

所以,从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值