git下载安装与使用

一、Git简介

(一)版本控制

版本控制(Version Control Systems)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。这个系统可以自动帮我们备份文件的每一次更改,并且可以非常方便的恢复到任意的备份(版本)状态。

在这里插入图片描述
实现版本控制的软件有很多种类,大致可以分为本地版本控制系统、集中式版本控制系统和分布式版本控制系统。
在这里插入图片描述
合作开发
在这里插入图片描述

(二)Git简介

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

二、Git的安装

(一)Git的安装

msysgit是Windows版的Git,从http://git-scm.com/downloads下载,然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
在这里插入图片描述

(二)Git的基本配置

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。以便在版本控制记录开发者的操作行为,如lion于2016-08-24解决了一个bug。
任意目录(建议开发根目录)右键 > Git Bash Here。录入:
git config --global user.name “自已的名字”
git config --global user.email “自已的邮箱地址”
–global 配置当前用户所有仓库
在这里插入图片描述

(三)Git工作流程

为了更好的学习Git,我们必须了解Git管理我们文件的3种状态,分别是已提交(committed)、已修改(modified)和已暂存(staged),由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。这是Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
工作目录是对项目的某个版本独立提取出来的内容。这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中。有时候也被称作“索引”(Index),不过一般说法还是叫暂存区域。

Git使用

git --version 查看git版本
git init创建git仓库
git status 查看文件状态
git status -s 查看文件状态(简化版)
git add 文件名 添加单个文件到暂存区
git add . 添加当前目录下所有文件到暂存区
git add --all 添加当前目录下所有文件到暂存区
git commit -m “wrote a readme file” 提交暂存区文件到git仓库
git diff查看差异
git log查看日志
git reset - -hard HEAD^,版本回退上个版本
git reset --hard ‘commit id’ id值全写或前6位 回退指定版本
git checkout - - 文件名 撤销修改
git rm 文件名 删除文件

(一)初始化仓库

在空的目录下,通过git init命令把这个目录变成Git可以管理的仓库。
运行成功后,可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
在这里插入图片描述

(二)添加文件

使用忽略脱管文件:
在一个目录中,不想把所有的文件都提交给git,可以针对每个文件分别进行add。但是这种做法比较麻烦!
可以创建一个.gitignore的文件,在文件中配置要忽略的文件和文件夹

在window平台下不能使用右键方式创建 .gitignore文件,要使用命令方式
echo >> .gitignore
在这里插入图片描述

在文件中添加要忽略的文件和目录

在这里插入图片描述

test.html 和 aaa目录中的内容就不会被git跟踪。

如果 .gitignore文件 直接写aaa那么表示仓库中的所有aaa目录都会被忽略
/aaa表示只有根目录下的aaa目录会被忽略

(三)提交文件

第二步,用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m “wrote a readme file”。
在这里插入图片描述

  • -m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
  • git add首先将文件提交至暂存区,git commit 再统一将暂存区中的内容提交到git本地仓库。

(四)查看日志

实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:
$ git log
在这里插入图片描述
git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:
$ git log --pretty=oneline
在这里插入图片描述

(五)查看差异

如果一个文件知道他修改了,但如果能看看具体修改了什么内容,自然是很好的。
比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt。所以,需要用git diff这个命令看看:

电脑上的文件和git仓库中的对比差异
+表示增加,-表示删除
$git diff
在这里插入图片描述

(六)版本回退

我们不断修改文件,不断的往版本库中提交文件。就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。
如果想回到上一个版本,应该怎么做呢?
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,
上上一个版本就是HEAD^^, 当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
$ git reset --hard HEAD^
回到指定版本:
$ git reset --hard ‘commit id’ id值全写或前6位

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

回退以后,回退的版本之后的版本就都不存在了。

(七)撤销修改

git checkout - - file可以丢弃工作区的修改: - -(两杠之间没空格) 后面是一个空格
命令git checkout - - readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销。 这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区(git add),现在撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
注意:git checkout - - file命令中的–很重要,没有- -,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

(八)删除文件

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:
$ git rm test.txt
这个时候,Git知道你删除了文件。因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了。
删除完成后需要commit。会有删除了文件的新版本,如果删除了想恢复,可以使用 reset 版本恢复。
在这里插入图片描述
在这里插入图片描述

四、分支管理

分支:
默认有一个主分支 master

  创建分支    git branch 分支名
  
  切换分支    git checkout 分支名
  
              git checkout -b 分支名
			  
  合并分支    git merge 分支名		

  删除分支    git branch -d 分支名

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
值得注意的是所有的提交(commit)实际上都是在分支(branch)的基础上进行的。如下图所示:
在这里插入图片描述
当我们在初始化仓库的时候(实际上是产生第1次提交时),Git会默认帮我们创建了一个master的分支,并且有指针(HEAD)指到了末端。
指针(HEAD)用来标明当前处于哪个分支的哪个版本,如上图指的是处于master分支的最后1个版本。
我们也可以创建自已的分支。

在这里插入图片描述

(一)创建分支

git branch hotfix
新的分支会在当前分支原有历史版本的结点上进行创建,我们称其为子分支,如下图。新分支会继承原有分支的所有提交历史。
在这里插入图片描述

(二)切换分支

创建分支之后,直接进行的操作仍然在原有的分支上进行。如果需要操作新的分支,需要使用切换分支命令.git checkout hotfix切换分支。
在这里插入图片描述
我们发现HEAD现在又指向了hotfix的末端。
此时进行一次新的提交,操作的就是新的hotfix分支。
在这里插入图片描述
提交之后,再切回master分支,发现刚刚提交的内容,并没有在master分支中出现。

(三)合并分支

若在master分支中进行了一次提交,此次提交并不会影响hotfix分支,此时master分支的提交记录就会和hotfix分支的提交产生分歧。
在这里插入图片描述
此时,若是需要把所有的修改的记录都保留下来,就需要合并分支,即将hotfix分支的内容合并到master分支。
在master分支输入git merge hotfix。
在这里插入图片描述

(五)删除分支

git branch -d hotfix可以删除一个分支。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值