Git教程【安装及基本操作】

Git简介

Git(全局信息追踪器)。
  Git是一个分布式版本控制工具,Git的使用中央仓库不是必须的,用户本地就是一个完整的版本仓库,代码的前进、回退、删除等等操作都可以直接在本地进行,不需要中央仓库。但是,在实际操作中,为了能够和其他同事快速沟通以及合并代码,一般还是会搭建一个中央仓库。Git对分支的管理非常友好,可以快速创建或者合并分支。
  Svn集中式的版本控制工具,Svn中,必须要有中央仓库,所有的版本信息都保存在中央仓库中,代码的前进、回退、删除等等操作都需要在中央仓库中进行,用户本地保存的只是版本仓库的一个副本,Svn中的分支非常臃肿。

Git安装(windows)

官网下载

https://gitforwindows.org/

配置个人信息

Git教程【安装及基本操作】
打开窗口输入命令如下

 git config --global user.name "xn"     
 git config --global user.email "[email protected]"

创建文件夹【命令操作和linux差不多】

将目录切换到你创建的文件夹下
Git教程【安装及基本操作】

初始化操作

通过git init命令把这个目录变成Git可以管理的仓库,创建成功后在该文件夹下会多出一个.git的文件夹。

git init

Git教程【安装及基本操作】
 Git目录是用来来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了

基本操作

添加文件到版本库

创建一个普通文件

Git教程【安装及基本操作】
Git教程【安装及基本操作】

执行git add命令添加

git add heelo.txt

Git教程【安装及基本操作】

在执行下面这个命令

Git教程【安装及基本操作】
commit -m的-m后面跟的是本次操作的备注说明信息。最好是有意义的,也就是下次看到这个说明就清楚提交了什么内容。

为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add files"

status和diff命令

命令 说明
git status 说明
git diff 是difference的简写是用来查看文件的变化的 (工作区和版本库)

正常状态下执行这两个命令

Git教程【安装及基本操作】

对hello的文件进行修改

Git教程【安装及基本操作】

在执行这两个命令

Git教程【安装及基本操作】
前面命令告诉我们hello文件修改了,但是还没有提交

后面命令看到我们对这文件做了什么修改

用git add 添加后查看

Git教程【安装及基本操作】
it status告诉我们,将要被提交的修改包括hello,下一步,就可以放心地提交了

commit操作

提交后再执行 git commit 命令

Git教程【安装及基本操作】
Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working tree clean)的

命令 说明
git status 查看当前库的状态,add之前和commit之前都可以查看状态
git diff 文件名 查看文件修改前后的变化,在add命令之前执行

版本回退

log命令

刚刚我们对read.txt文件执行两次操作,我们还能记得住我们做了什么操作,但是当我们操作了一段时间后,修改的越来越多,那么我们就会忘记很多以前的操作。这时我们可以通过log命令来查看历史信息
Git教程【安装及基本操作】
git log命令显示从最近到最远的提交日志,每条日志信息占了五行记录,如果日志比较多的情况下。我们可以在命令后添加 –pretty=oneline单行来显示日志信息
Git教程【安装及基本操作】
提示‘27492ed2ca…’这一长串的信息既是版本号

版本回退

Git教程【安装及基本操作】
执行这个命令回退到上一次提交的版本

回到你想要的版本

Git教程【安装及基本操作】
Git教程【安装及基本操作】
 版本回退其实就是指针的改变。有时候我们想要回退到以前的最新版本,这时候log命令查看不到对应的版本号,在次场景下我们可以通过git reflog来查看
Git教程【安装及基本操作】
 小结:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
切换前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要切换未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。