zoukankan      html  css  js  c++  java
  • Git详细教程(1)---个人Git的基本使用

    分布式版本控制系统--git

    一.什么是Git

    1.Git是什么

    Git是目前世界上最先进的分布式版本控制系统(没有之一)。

    实际上版本控制系统有如下几个:

    1) CVS

    2)  SVN

    3) Git

    这个概念中有两个疑问:

    1. 什么是版本控制

    2.什么是分布式?

    2.为什么需要Git

    大家熟悉的一个场景:论文

    类似的场景,在软件开发中更为普遍。

    分组完成项目的时候

    1)多人协作,是如何完成的?

    2)开发自己的任务的时候,从写第一行代码开始到整个结束,有没有来回修改?

    如何来解决这些问题呢?

    早期,在项目规模还没有那么大的时候,大家制定一些规则,手动解决就行。

    随着软件和项目规模的增大,这种手动方式,效率太低,问题太多,不能满足开发的需求。

    需要有相应的工具来解决 --- 于是就出现了 版本控制系统。

    1)CVS,功能比较弱,现在很少使用

    2)SVN,功能比较完善,使用比较多

    3)Git,功能最强大的,也是最受欢迎的。

    所以,版本控制可以帮助我们实现两件事情:

    1)自动记录每次的修改,并且可以方便的切换到任一版本

    2)可以完成多人协作开发

    3.GitGitHub有何区别

    Git,是一个版本控制系统,实际上是一个工具,大多数都是基于命令行的。

    GitHub,是一个使用Git作为版本控制的托管代码的网站,平台

    重点在于学习Git本身。

    二.快速入门

    1.安装Git

    Git在多个操作系统均有相应的安装包。

    使用windows系统。

    还是一个典型的windows软件的安装

    官网:https://git-scm.com/downloads/

    这个表示加入了windowspath变量,意味着可以在cmd窗口中使用。

    安装完成之后,我们可以在任意目录下,点击鼠标右键,弹出右键菜单,有两个选项:

    1.Git GUI Here

    2.Git bash Here

    Git GUI here,其实就是一个可视化的界面,使用鼠标就可以完成相应操作。如下:

    Git bash Here

    命令行窗口

    2.使用流程

    基本的使用流程如下:

    1)初始化一个Git仓库(git init

    2)设置用户名和邮箱

    3)添加文件到仓库(git add 文件名1 文件名2

    4) 提交 git commit -m 说明文字)

    5)查看版本 git log

    6)回退 git reset --hard HEAD^/commit_id

    (1).初始化一个Git仓库(git init

    首先,需要指定我们的项目目录,比如此处放在project目录下,

    使用git init 来初始化一个Git仓库。

    在当前目录下打开 git bash 窗口,输入git init命令,如下:

    repository: 仓库

    相应的,会在当前目录下,创建一个隐藏的.git目录,

    我们在开发的时候,是不能去动这个目录的。

    如下:

    (2).设置用户名和邮箱

    使用

    git config user.name 用户名

    git config  user.email 邮箱

    (3).添加文件到仓库(git add 文件名1 文件名2

    我们需要在project目录下,开始开发。

    使用 git add 文件名,将其添加到版本库

    (4).提交 git commit -m 说明文字)

    使用git add只是将其添加到git 的暂存区,需要使用git commit进行提交,同时必须要加上说明文字。

    (5).查看版本 git log

    接下来,需要重复3~5

    比如,我新建一个base.css文件,将其引入到 index.html中,所以,又需要add

    再次commit

    (6).回退 git reset --hard HEAD^/commit_id

    第三天开发,发现需要回到第一个版本

    使用 git reset --hard HEAD^会退到上一个版本。

    我又后悔,需要再回到第二个版本。这是当前版本的未来版本,必须使用commit_idreset

    回退如下:

    此时,就已经切换到第二个版本。

    三.Git基本概念及原理

    1.基本概念

    在使用git的时候,通常会提到如下几个术语:

    1)工作区

    2)版本库

    3) 暂存区

    4)分支

    当我们使用git init命令初始化仓库的时候,创建一个隐藏的目录---- .git

    这个文件夹将我们的项目目录一分为二:

    1.版本库(仓库)

    2.工作区

    1)凡是在.git目录中的,都是属于版本库的

    2)凡是在.git目录之外的,都是属于工作区的。

    我们的项目目录

    一旦我们创建了版本库,在开发的时候,就不能对版本库目录做任何的操作。

    我们开发的操作都是在工作区进行的,新建、修改、删除都是在工作区进行的。

    也就是说,我们的常规开发都是在工作区进行的。

    对于工作区的内容,其实就是我们常规的和项目相关的文件和文件夹。

    对于版本库,还需要进一步的去看看里面有什么东西。

    版本库,又一分为二:

    1) 暂存区

    2)主分支

    暂存区:stage,临时保存文件的一个区域,就相当于是一个中转站。工作区中的任何内容都是需要通过暂存区,才能提交真正的分支上去。

    主分支:master,它才是保存各个版本的地方

    2.基本原理

    理解Git的关键在于 暂存区 的理解。

    前面我们使用Git提交版本的时候,其实分成了两步:

    1) 使用git add命令

    2)使用git commit命令

    实际上,我们在将工作区的文件提交给版本库的时候,首先是将其添加到 暂存区,然后才是从暂存区再提交给主分支。

    1)git add ,将文件添加到 版本库的 暂存区。

    2)git commit ,将暂存区所有的文件一次性提交个 主分支。

    我们不能直接从工作区到 主分支,必须要经过暂存区。

    结合命令再次来看看这个过程。

    使用 git status 可以查看 git版本库的状态。

    text项目目录下,新建一个版本库,目前工作区没有任何内容,如下:

    使用 git status命令,查看 版本库的状态:

    在工作区中,新建一个index.html文件,如下:

    再次使用 git status查看,如下:

    采纳它的建议,使用git add命令,将index.html添加到版本库的暂存区,如下:

    再次查看状态,如下:

    说明这个文件,已经被放入暂存区了。

    使用git commit 将其从暂存区提交到 主分支,如下:

    再次查看状态:

    说明暂存区空了。

    可以参考图示。

    四.基本操作

    实际上,就是几个常见命令,包括如下几个:

    1)git config

    2)git init

    3) git add

    4)git commit

    5)git status

    6)git rese

    Git可以完成两件事情:

    1.版本控制

    2.多人协作

    此处,讨论都是针对个人的版本控制。

    1.git config

    用户获取/设置git的一些配置。

    获取git的配置,使用 git config --list

     

    我们重点关注的就只有 用户名和邮箱的一个设置

    git config user.name 用户名

    git config user.email 邮箱名

    如果需要设置全局的,可以加 --global

    如果是第一次安装 gituser.name user.email是没有的,所以需要设置一下。

    2.git init

    用于初始化一个版本库。

    可以用两种方式来初始化

    1.先创建一个目录,在这个目录下,使用git init命令

    2.直接使用 git init 项目名称,初始化

    不管是哪种方式,都会在 项目目录下,新建一个.git目录,该目录就是 版本库,这个目录是隐藏,也不允许用户进行任何的操作。需要对版本库进行操作,使用命令操作即可。

    3.git add

    作用:将文件从 工作区 添加到 版本库的 暂存区

    格式:git add 文件名1 文件名2 文件3

    此处,也可以添加文件夹。

    查看状态,如下:

    4.git commit

    作用:将所有文件一次性从暂存区 提交给 主分支,才会形成一个版本。

    格式:git commit -m 说明文字

     

    一旦commit,就会将其提交个主分支,形成一个新的版本,同时会将暂存区清空。

    在使用的时候,需要注意的一个问题  ---- 必须要添加说明文字。

    添加说明文字有两种方式:

    1)使用 -m 参数 (推荐)

    2)进入vi编辑器,然后编辑

    如果在git commit的时候,没有加上 -m ,就会进入vi编辑器,如图:

    vi编辑器中,两种种模式:

    1)输入模式,允许用户输入内容

    2)命令模式,可以执行相关的一些命令

    默认进来是一个命令模式,切换到输入模式,按下 i,就可以输入相应的说明文字。

    按下ESC键,就退出输入模式,进入命令模式。

    如果想保存退出,需要输入 wq

     

    推荐大家使用-m参数来添加说明文字。

    5.git status

    作用:查看版本库的状态,重点就是暂存区。

    格式:git status

    重点就是 读懂不同的情况下的说明信息:

    6.git reset

    作用:用于切换到某一个版本

    格式:git reset --hard HEAD^ /commit_id

    一旦我们将项目形成多个版本,就可以使用git reset切换到任意版本。

    通常需要查看当前版本库的日志信息。使用git log来查看,如下:

    现在就可以使用git reset命令回退。

    如果是会退到之前的版本,可以使用HEAD关键字和commit_id。

    HEAD^,回退到之前的一个版本

    HEAD^^,回退到之前的两个版本

    HEAD^^^,回退到之前的三个版本

    如果大于3的话,HEAD^10

    更好的方法就是使用 commit_id。

    如果需要回退到当前版本的未来版本,必须使用commit_id。如果使用HEAD,会回退到更小的版本。

    再回到未来版本时,要分两种情况:

    我已经使用了git log查看过版本情况,直接拿到那个commit_id即可。

    如果没有使用git log查看过版本,使用git reflog可以查看整个commit_id情况。

  • 相关阅读:
    (五)表单类的创建和使用
    (四)注册登录--重用Django
    (三)Django模板语言
    (二)Django模板的应用
    (一)Django项目架构介绍
    SOA测试之浏览器插件
    (2) Tomcat启动Jenkins
    (1) Jenkins + Subversion + Maven + TestNG
    [翻译] API测试最佳实践
    [原创] 算法之递归(4)- 应用
  • 原文地址:https://www.cnblogs.com/Lovebugs/p/6820546.html
Copyright © 2011-2022 走看看