Git入门初探

一、Git简介

概念就这一句话:Git是一个目前非常流行也好用的分布式版本控制系统。

作者牛逼创造经历:因为各种不爽,为了能够托管Linux源代码,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!

 

废话不多说,下面进入实操。

 

二、Git安装与初始化

官网下载:https://git-scm.com/downloads(本人下载windows版本的)

安装步骤:不多说,默认安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,打开Git Base窗口。

  设置本地机器的用户名,邮箱:

  $ git config --global user.name "你的用户名"

  $ git config --global user.email "你的邮箱"

这个设置的含义:指定本机器所有仓库都使用这个用户名和邮箱。

当然也可以给某个仓库指定一个特定用户名和邮箱,操作如下:

  1)进入项目根目录;

  2)输入:

  $ git config  user.name "你的用户名"

  $ git config  user.email "你的邮箱"

  完了,查看一下就知道了:

  $ git config --list

  ......

  ......

  (看看输出里的user.name和user.email值就知道了)

  是不是很简单,只要将--global参数去除就可以了。

 

下面,我们在进入实操之前,先了解一下几个重要的概念吧

三、重要概念简介

 工作区和版本库

此处,引用 廖老师画的图片,客人们可参考廖老师 https://www.liaoxuefeng.com/wiki/896043488029600/897271968352576 写的教程。

 

 

 如上图所示,工作区其实对应的就是我们增删改文件的所在目录,版本库包含暂存区,以及最终提交后的存储区。

我们提交文件到Git版本库的时候,是分两步执行的:

  第一步:用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

  第二步:用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

其实,简单总结起来就是:把需要提交的文件修改全部先放到暂存区,然后,一次性提交暂存区的所有修改。

 

下面来看基础版常规操作会用到的指令吧。

四、Git基本使用技巧

4.1 创建版本库:

  mkdir Git(我直接在F盘根目录下创建,客人您可自选目录创建,但windows下,最好不要含有中文)

  cd Git
  查看下路径:
  
   输入:git init
   返回:Initialized empty Git repository in F:/Git/.git/

至此,版本库创建完成。

4.2 建设的过程——增

增:

  我们在Git仓库目录下,新增一个first.txt文件,然后执行下面git指令,如下图所示(请忽略我的环境显示):

  

 

 

   主要就是git add "文件名" ,git commit -m "提交说明",这样文件就提交了。

  可以查看,日志:

 

 

 改:

  打开文件,在文件中添加内容:This is my first Git file.

  然后提交:

  > git add first.txt

  > git commit -m "modify first.txt"
  [master c3e6255] modify first.txt
  1 file changed, 1 insertion(+)

 

删除:

  直接使用指令,删除: 

  > git rm first.txt
  rm 'first.txt'

  > git commit -m "remove file first.txt"

 

做了这么一波操作,忽然发现出错了,怎么办?

 

还好,这里还能卖给你一点Git提供的后悔药...

4.3 你的后悔药——撤销与版本回退

  这里主要分两种情况,

  第一种,你使用了git add 指令,还没有使用 git commit,这种情况,执行撤销操作即可。

  第二种,你执行了git commit,这种情况,需要回退版本。

下面,我们分别看看:

撤销情景与操作:

  情景1:改错了工作区某个文件的内容,想丢弃工作区该文件的修改时。

  解决方案:用命令git checkout -- file

  情景2:不但改乱了工作区某个文件的内容,还执行了git add ,添加到了暂存区,想丢弃修改。分两步,

  解决方案:第一步用命令git reset HEAD <file>,目的是使用版本库中该文件的最新版本替换暂存区该文件,这样就回到了情景1;第二步按情景1操作。

  情景3:已经提交了不合适的修改到版本库时,想要撤销本次提交。

  解决方案:参考下面的版本回退。(如果你已经推送到远程服务器,那么,这个操作也救不了你了)

 

版本回退:

首先查看历史提交记录: 

  > git log --pretty=oneline

  9f6506b1f40e5e6682ed43cead74fd9066343649 (HEAD -> master) remove file fist.txt
  c3e6255f4a21d7b9d6b6b47da1b9df07a55ba4f0 modify first.txt
  6169bd8dd8ce3e4941582beb0ea877c47b07b50a add file fist.txt

       或者推荐使用

      > git  reflog能够输出历史所有提交的操作记录

  > git reflog

  b8017ea HEAD@{3}: commit: remove  first.txt
  3c8f78c HEAD@{2}: commit: modify test02.txt
  c3e6255 (HEAD -> master) HEAD@{4}: reset: moving to c3e62
  9f6506b HEAD@{5}: commit: remove file fist.txt
  c3e6255 (HEAD -> master) HEAD@{6}: commit: modify first.txt

比如,想要回退到删除first.txt文件之前,那么只要使用

      >git reset --hard 3c8f78c

当然,这个版本之后修改的文件状态也将丢失。

 

posted @ 2020-03-05 20:57  码海一扁舟  阅读(113)  评论(0编辑  收藏  举报