当前位置: 首页 > news >正文

菏泽建设网站校园网站建设策划书

菏泽建设网站,校园网站建设策划书,网站建设费属于研发费用吗,有没有好的ppt网站做参考的目录 Git初始 Git安装 Git基本操作 创建git本地仓库 配置git 工作区,暂存区,版本库 添加文件,提交文件 查看.git文件 修改文件 版本回退 小结 Git初始 git是一个非常强大的版本控制工具.可以快速的将我们的文档和代码等进行版本管理. 下面这个实例看理解下为什么需…

目录

Git初始

Git安装

Git基本操作

创建git本地仓库

配置git

工作区,暂存区,版本库

添加文件,提交文件

查看.git文件

修改文件

版本回退

小结


Git初始

git是一个非常强大的版本控制工具.可以快速的将我们的文档和代码等进行版本管理.

下面这个实例看理解下为什么需要版本控制

在工作或者学习中,我们可能经常会遇到这样的场景,例如当我们需要给领导提供一份资料的时候,我们先写出了一个版本,交给领导,但是领导看完不满意,让重新写,于是我们又写了第二个版本,领导还是不满意,于是又写了第三个版本,领导看完之后说还不如第二个版本的文档,于是就要第二个版本的文档.

这种情况下我们想要恢复到第二个版本的文档是不是就比较麻烦了.

但是如果我们将文档交给git进行管理之后,那个问题就不在是问题了.

对于Git这个工具,不管是在企业中还是学习中,适用频率都是很高的一个工具,在企业中我们需要合作开发项目,那么合作完成项目,git是必不可少的一个工具.

Git安装

工欲善其事必先利其器,接下来我们先安装git.

我们安装git环境是在CentOs.

后续的操作也是在CentOS上进行操作.

由于我们的系统上是没有git的,我们需要安装git.

在没有安装git之前,我们在控制台上输入git之后,会出现这样的场景:

git
-bash: git: command not found

上述情况只是系统提示我们没有安装git.

其实在linux上安装git非常简单,只需要一个命令即可:

 yum -y install git

当操作这个命令之后,我们可以在控制台输入 git --version来查看我们安装的版本.

目前为止我们的git已经安装完成了.可以看出git的安装是非常简单的,可以说是傻瓜式安装.

Git基本操作

接下来我们将介绍git的一些基本操作.这些基本操作一般使用频率最高.

创建git本地仓库

上述图片中的命令就是在我们本地创建一个新的git仓库.

git init 命令就是创建本地仓库的命令.

当我们创建完成之后,我们在当前仓库发现了一个.git的隐藏目录.这个目录就是用来管理这个仓库下的所有东西的.

以下就是.git目录下的所有东西.

关于这个.git目录中的东西我们在后面会详细进行介绍.

配置git

接下来就需要对git进行配置,这个配置是非常重要的,主要就是配置用户名和email地址,这个配置用来区分是那个用户进行提交的.

配置命令:

git config user.name "Your Name" 
git config user.email "email@example.com" 

 需要把user.name和user.email 换成自己的即可.

可以使用git config -l进行查看

--global 是⼀个可选项。如果使⽤了该选项,表⽰这台机器上所有的 Git 仓库都会使⽤这个 配置。如果你希望在不同仓库中使⽤不同的 name 或 e-mail ,可以不要 --global 选项,但要 注意的是,执⾏命令时必须要在仓库⾥。

删除对应的配置命令:

git config  --unset user.namegit config  --unset user.email

如果需要删除全局的配置,只需要将 --global选项即可.

工作区,暂存区,版本库

工作区:工作区就是在git仓库下进行编写代码和文档的地方.

暂存区:英⽂叫 stage 或 index。⼀般存放在 .git ⽬录下的 index ⽂件(.git/index)中,我们 把暂存区有时也叫作索引(index)。

版本库:⼜名仓库,英⽂名 repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽ 是 Git 的版本库。这个版本库⾥⾯的所有⽂件都可以被 Git 管理起来,每个⽂件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

图中左侧为⼯作区,右侧为版本库。

Git 的版本库⾥存了很多东西,其中最重要的就是暂存区。

在创建 Git 版本库时,Git 会为我们⾃动创建⼀个唯⼀的 master 分⽀,以及指向 master 的⼀个指 针叫 HEAD。(分⽀和HEAD的概念后⾯再说)

当对⼯作区修改(或新增)的⽂件执⾏ git add 命令时,暂存区⽬录树的⽂件索引会被更新。

当执⾏提交操作 git commit 时,master 分⽀会做相应的更新,可以简单理解为暂存区的⽬录树才会被真正写到版本库中。

由上述描述我们便能得知:通过新建或粘贴进⽬录的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件。必须要通过使⽤ git add 和 git commit 命令才能将⽂件添加到仓库中 进⾏管理!!!

添加文件,提交文件

我们在包含.git目录的下新建一个文件,我们可以使用git add 命令将工作区的文件添加到暂存区.

  • 添加一个或多个文件到暂存区                    git add [file1] [file2] ...
  • 添加一个目录到暂存区                               git add [dir]
  • 添加当前目录下所用改动的文件到暂存区   git add

再使用git commit命令将暂存区中的文件提交的本地仓库中.

  • 提交暂存区全部内容到本地仓库中: git commit -m "message" 
  • 提交暂存区的指定⽂件到仓库区: git commit [file1] [file2] ... -m "message"

注意:git commit -m选项要跟上这次提交的描述信息.这个不能缺少.用来记录你提交的细节,要好好描述.

[root@VM-8-9-centos TestGit]# git init
初始化空的 Git 版本库于 /root/TestGit/.git/
[root@VM-8-9-centos TestGit]# ls -a
.  ..  .git
[root@VM-8-9-centos TestGit]# touch 1.txt
[root@VM-8-9-centos TestGit]# touch 2.txt 3.txt
[root@VM-8-9-centos TestGit]# ls
1.txt  2.txt  3.txt
[root@VM-8-9-centos TestGit]# git add 1.txt
[root@VM-8-9-centos TestGit]# git add 2.txt 3.txt
[root@VM-8-9-centos TestGit]# git commit 1.txt -m "提交一个文件"
[master(根提交) da0d6e8] 提交一个文件1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 1.txt
[root@VM-8-9-centos TestGit]# git commit -m "将暂存区中所有文件都提交"
[master 890a29d] 将暂存区中所有文件都提交2 files changed, 0 insertions(+), 0 deletions(-)create mode 100644 2.txtcreate mode 100644 3.txt
[root@VM-8-9-centos TestGit]# ^C
[root@VM-8-9-centos TestGit]# 

 此时我们可以使用git log命令来查看提交记录:

该命令显示的是从进到远的日志.

 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline 参数:

我们发现在上面都会有一些数字比如890a29.................,这个数字的话是我们每次进行提交的commit Id(版本号),git的commit id是通过一系列计算出来的16进制的数字.

要搞明白这些数字的含义,就需要进入.git目录.

查看.git文件

  • index就是暂存区,我们进行add的文件和代码都是在这个目录下
  • HEAD就是我们默认指向的master分支的指针

其实所谓的master分支就是: 可以看到master分支打印 了一串数字,其实这个数字就是我们最近提交的commit id

我们可以通过打印日志来看看:

[root@VM-8-9-centos TestGit]# git log --pretty=oneline
890a29d9bdb4b08ce1a6c62cb2f9686ca9c0e451 将暂存区中所有文件都提交
da0d6e8dbbda2503b782b862bb1d332dc2a6a5a1 提交一个文件
[root@VM-8-9-centos TestGit]# 

可以看到完全一致.也就是说我们现在是将文档提交到master分支上的.

  • objects 为 Git 的对象库,⾥⾯包含了创建的各种版本库对象及内容

当执⾏ git add 命令 时,暂存区的⽬录树被更新,同时⼯作区修改(或新增)的⽂件内容被写⼊到对象库中的⼀个新的对象中,就位于 ".git/objects" ⽬录下,让我们来看看这些对象有何⽤处.

我们发现里面有很多的目录,查找 object 时要将 commit id 分成2部分,其前2位是⽂件夹名称,后38位是⽂件名称。

找到这个⽂件之后,⼀般不能直接看到⾥⾯是什么,该类⽂件是经过 sha (安全哈希算法)加密过的 ⽂件,好在我们可以使⽤ git cat-file 命令来查看版本库对象的内容:

 我们所有对本地仓库目录下的所有操作,都会被git记录下来,也就是在objects目录下,这里记录了所有对本地仓库的操作.

修改文件

Git ⽐其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,⽽⾮⽂件。

什么是修改?⽐如你新增了⼀⾏,这就是⼀个修改,删除了⼀⾏,也是⼀个修改,更改了某些字符, 也是⼀个修改,删了⼀些⼜加了⼀些,也是⼀个修改,甚⾄创建⼀个新⽂件,也算⼀个修改。

我们可以将我们前面提交的文件进行修改,

我们使用vim 1.txt打开文件,在里面写入hello world,然后保存退出.

此时,仓库中的1.txt文件和我们工作区的1.txt文件是不同的.我们可以使用git status命令查看在你上次提交之后是否有对⽂件进⾏再次修改

 上述结果已经告诉我们了,1.txt已经被修改,但是还没有进行添加和提交.

此时我们是知道1.txt文件已经被修改了,但是并不知道修改了那些内容.我们可以使用命令:

git diff 1.txt 来查看修改了那些内容.

这里我们就能看到我们添加了一行hello world .

当我们知道我们修改了那些内容的时候,我们就可以进行添加和提交操作了.

当我们进行了add 之后再次查看的时候,就会发现他会提示你要提交的变更是那个了.然后我们进行提交就可以了.

版本回退

之前我们也提到过,Git 能够管理⽂件的历史版本,这也是版本控制器重要的能⼒。如果有⼀天你发现 之前前的⼯作做的出现了很⼤的问题,需要在某个特定的历史版本重新开始,这个时候,就需要版本回退的功能了。

执⾏ git reset 命令⽤于回退版本,可以指定退回某⼀次提交的版本。

要解释⼀下“回退”本质是 要将版本库中的内容进⾏回退,⼯作区或暂存区是否回退由命令参数决定:

git reset 命令语法格式为: git reset [--soft | --mixed | --hard] [HEAD]

  •  --mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内 容,⼯作区⽂件保持不变。
  •  --soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。
  •  --hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命 令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。
  •  HEAD 说明:

可直接写成 commit id,表⽰指定退回的版本

HEAD 表⽰当前版本

HEAD^ 上⼀个版本

HEAD^^ 上上⼀个版本

以此类推...

可以使⽤ 〜数字表⽰:  

HEAD~0 表⽰当前版本

HEAD~1 上⼀个版本

HEAD^2 上上⼀个版本

以此类推..

为了方便测试,我们对1.txt文件进行三次修改 添加 和提交操作.

第一次:

第二次:

第三次:

查看历史的提交记录:

 现在,如果我们在提交完 version3 后, 发现 version 3 编写错误,想回退到 version2,重新基于 version 2 开始编写。由于我们在这⾥希望的是将⼯作区的内容也回退到 version 2 版本,所以需 要⽤到 --hard 参数,⽰例如下:

我们这里的回退是直接的commit Id进行回退的.

现在我们发现工作区的1.txt文件已经回退到了version2的版本了.同时也发现head已经指向了version2了

值得说的是,Git 的版本回退速度⾮常快,因为 Git 在内部有个指向当前分⽀(此处是master)的 HEAD 指针, refs/heads/master ⽂件⾥保存当前 master 分⽀的最新 commit id 。当我们 在回退版本的时候,Git 仅仅是给 refs/heads/master 中存储⼀个特定的version,可以简单理解 成如下⽰意图:

 

小结

本篇文章为git的基础篇,后续会持续更新git的其他操作以及高级的特性. 

http://www.yayakq.cn/news/528368/

相关文章:

  • tiktok官方网站入口群晖wordpress端口无法登陆
  • 做旅游计划的网站搜网站内容
  • php 建网站俄罗斯网站域名注册
  • 文汇智能建站平台长宁集团网站建设
  • 装修网站合作小学生手工制作大全
  • 汶上手机网站建设网站制作需求
  • 公司建设网站需要注意什么阿里云主机如何搭建wordpress
  • 石家庄心雨网站建设全国建筑工人招工网
  • 展示型网站制作公司哈尔滨招投标信息网
  • 网站接入地查询建设集团网站 技术支持中企动力
  • 做的网站必须放在idc机房吗浏览器如何推广自己网站
  • 建设个人技术网站新乡专业做网站的公司哪家好
  • 一个域名怎么用来做多个网站互联网网站开发的未来方向
  • 怎么把网站黑了郑州网站制作怎么样
  • 上海网站案例紫搜做网站
  • 安徽省建设信息网站免费个人域名网站
  • 深圳网站设计兴田德润简介17网站一起做网店2018
  • 怎样登录沈阳科技网站天眼查企业查询在线官网
  • 类似pinterest的网站手机网站需要域名吗
  • 免费整套ppt模板下载网站兰州道路建设情况网站
  • 四川省建设工程网站网站建设工资一月多少
  • 已有网站 需要整改 怎么做wordpress调用文章内容标签
  • windows怎么做网站网站流量分布
  • 建设苏州旅游网站的方案策划书四合一营销型网站
  • 网站设计公司需要什么资质手机ppt制作软件免费app
  • 搜狗站长管理平台wordpress写网站教程
  • 自动建站网站系统域名注册个免费网站
  • 青岛网站建设情况seo站长之家
  • 网站建设如何敲图标代码做花瓶的网站
  • 网站建设的需求是什么江苏盐城网站开发