`
yootk
  • 浏览: 7271 次
社区版块
存档分类
最新评论

02_【GIT完全讲解】GIT基本使用

阅读更多


 

 视频地址:链接:http://pan.baidu.com/s/1qWFOAKk 密码:csr4

 

1、设置开发者的个人信息

         在任何一个系统之中都会存在有多个开发者(多人协作开发),而在GIT之中,对于每一个开发者(电脑),都需要开发者自己定义自己的名字与email地址,以便进行方便的联系。 

此时需要配置全局信息。 
范例:配置全局用户名及email地址


git config --global user.name "yootk"
git config --global user.email "mldnqa@163.com"


设置完成之后如果成功不会任何的提示信息,而后用户可以通过如下的命令察看配置的全局信息。 
范例:察看信息


git config -l


可以发现除了之前配置的用户名和email地址之外,还存在有其它的内容。


此时这台电脑上所做出的所有修改,都会自动的将用户名、email地址发送到主程序之中。

2、创建仓库(版本库)


在仓库之中可以保存所有用户开发过程之中所编写的代码的日志纪录。对于使用过maven的用户应该很清楚respository这个单词。 
如果要开发项目,那么首先必须有一个仓库(可以简单的理解为是一个磁盘上的文件夹)。 
范例:创建文件夹(d:\mypro)


d:
md mypro

         此时mypro文件夹是一个空的文件夹,没有任何的内容,只是一个纯粹的目录。 
范例:将mypro文件夹定义为仓库

  1. 进入文件夹:

cd mypro

  1. 初始化仓库(将此目录变为可以被GIT管理的仓库)

git init


而且此时会提示,在mypro文件夹之中创建了一个“.git”的目录,这个目录就是仓库信息,死都不能改。 

3、添加文件

         现在仓库创建完成之后,下面就要进行文件的基本管理了。首先在编写之前有一个说明:所有的文件一定要使用UTF-8编码,否则有可能会出现问题(不要去使用windows的notepad.exe工具)。 

既然我们都是从事于Java开发的,那么下面就利用Java源文件观察git使用。 
范例:建立一个Hello.java文件


public class Hello {
public static void main(String args[]) {
System.out.println("Hello World !") ;
}
}

         此时Hello.java文件保存在了mypro目录下,而且mypro目录属于git管理的仓库。 
范例:察看当前仓库的状态


git status


在“git status”状态查询操作上可以发现有如下的几个提示信息: 
· 现在的开发属于主分支:On branch master; 
· 初始化仓库的提交:Initial commit; 
· 未标记的文件:Untracked files
· 随后给出了一些操作的命令:(use "git add <file>..." to include in what will be committed); 
· 未标记文件的列表,现在只有一个:Hello.java

范例:将文件加入到暂存库之中


git add Hello.java


范例:继续查询状态


git status


此时有了一个最重要的信息:


Changes to be committed:
(use "git rm --cached <file>..." to unstage)

        new file:   Hello.java

         现在的文件并没有真正的提交到主分支上(主分支就是我们真正要运行的程序的所有的代码)。 
注意:所有修改的代码都会被GIT自动的监测到,所有的代码在使用commit提交之前一定要先使用add增加进来,否则不会有任何的提交。 
         如果现在不希望分两步进行则可以在运行以下程序时增加一个“-a”的参数,表示先add而后commitgit commit -a -m "注释")。 
范例:提交文件信息


git commit -m "New Java File - Hello.java Create"

         在进行每次更新提交的时候一般都会为其增加上一些注释数据,所以使用“-m”参数来进行注释的编写。 

此时这个“Hello.java”文件就被真正的提交到了主分支上,也就是意味着程序发布成功了。 
范例:查询状态


git status


此时的状态会提示:没有任何的信息需要被提交,工作目录很干净。而在git工具下用户每一次进行的提交实际上都会被日志纪录下来。 
范例:察看针对于“Hello.java”文件的日志信息


git log Hello.java

         察看日志纪录的时候如果到底了(end出现)请按下字母“q”就表示可以退出了。 

首先会出现一个提交的信息号“e987aaefeb219802fd783c0a7f2efcb3bbdcc44”,可以理解为是每一次提交的id号。如果有多次提交,那么这个日志信息也会越来越多。

4、修改仓库文件

       程序代码已经可以成功的进行了发布,但是代码出现就是为了修改。于是现在来观察对于git工具如何去控制修改。 
范例:修改Hello.java文件


public class Hello {
public static void main(String args[]) {
                   System.out.println("Hello Yootk .") ;
                   System.out.println("www.yootk.com") ;
}
}

         此时发现文件增加了两行的修改。 

范例:查询一下当前的仓库状态


git status


现在GIT直接提示用户,文件没有保存到暂存区之中,而且提示有:要么你选择文件暂存,要么你直接进行文件的恢复,同时给出了已经修改的文件“Hello.java”。 
范例:察看文件的前后区别


git diff Hello.java


现在可以发现所有增加的内容都会使用“+”表示,而被删除的信息都会使用“-”表示。 
范例:将修改后的代码加入到暂存区后进行提交


git commit -a -m "Update Hello.java File . Add Two Lines"


范例:察看修改日志


git log Hello.java


通过以上的代码演示,现在可以清楚的发现,只要是修改的操作GIT都可以进行及时的跟踪。

5、工作区与暂存区



概念解释: 
· 在之前所编写的“Hello.java”文件保存在用户工作区之中; 
· 当使用add命令之后,实际上就是将所修改的文件提交到了暂存区(stage)之中; 
· 使用commit命令之后,才表示真正的发出了修改,而真正可以运行的程序都保存在master分支上。

5.1、工作区操作


范例:修改Hello.java


public class Hello {
public static void main(String args[]) {
System.out.println("www.mldn.cn") ;
}
}

范例:增加一个Demo.java文件


public class Demo {
public static void main(String args[]) {
System.out.println("HELLO yootk") ;
}
}

         现在的工作区中的代码已经发生了变化。 
范例:使用status跟踪


git status


现在会提示有以下信息: 
· 修改了Hello.java文件,而这个文件给出了处理方式; 
· 出现了一个未标记的文件(Demo.java),询问用户是否将其加入到暂存区之中。

5.2、暂存区操作


范例:使用“git add”将代码添加到暂存区之中


git add .

         本次操作使用了一个“.”,那么就表示全部加入。修改之后再次观察状态。 
范例:观察状态


git status

5.3、提交修改

         数据保存在暂存区之后,下面就要进行代码的提交,将代码提交到主分支上。 

当把暂存区的代码提交到主分支上之后,会自动的清空暂存区之中的内容。 
范例:提交修改代码


git commit -m "Add Demo.java File"


那么此时再次查询状态。 

那么会直接发现没有任何的文件修改的提示。

6、版本回退


每当用户进行代码提交的时候都会自动的生成一个commit id,而这个commit id就是进行代码回退的主要操作方式。 
范例:查询当前修改后的日志信息


git log --pretty=oneline


大家可以发现所有的commit id并不是顺序的1、2、3编号,而是由系统生成一个十六进制数据,这一概念就跟Session ID类似,由GIT自己控制,主要是为了防止版本号的冲突。 

在master分之上会有一个HEAD指针存在,而这个指针默认情况下永远指向最后一次提交的位置。 

当使用回退之后发现HEAD指针出现了改变,如果回退一步,那么之前的操作不会被删除,但是所有的代码将回归到指定位置的状态。 
范例:回退一步


git reset --hard HEAD~1


那么如果说现在还想恢复最新的状态呢?那么就必须找到回退的commit id。 
范例:找到所有的已经删除的信息commitid


git reflog

范例:恢复最后一次提交


git reset --hard fe27af74

         此时的代码就恢复到了新的状态,也就是说利用这些commit id就可以方便的进行代码的历史穿梭。

7、提示:文件修改问题

         在有了暂存区和master主分支概念之后,就需要回避一个问题:只有保存在暂存区之中的内容才可以被真正的修改,而不是针对于文件。 

范例:编写Hello.java文件


public class Hello {
public static void main(String args[]) {
System.out.println("yootk") ;
}
}

         以上是Hello.java文件的第一次修改。 
范例:将修改的文件增加到暂存区之中


git add .

         此时并没有提交,而后再次修改Hello.java文件。 
范例:修改Hello.java文件


public class Hello {
public static void main(String args[]) {
System.out.println("yootk.COM") ;
}
}

         但是这个时候此文件并没有使用add进行加入。 
范例:进行提交(提交的时候只提交暂存区的内容)


git commit -m "change print"

         可是这个时候只是提交了第一次修改,而第二次修改并没有提交。 
范例:查询状态


git status


范例:进行对比


git diff HEAD Hello.java

         HEAD是指向最后一次提交的指针,现在的含义是将HEAD中的Hello.java文件与工作区的Hello.java文件进行对比。 

总结:如果一个文件修改多次了,那么就需要执行多次的add后才可以提交,否则在add前的修改是不会被提交的。

8、撤消修改

         代码修改很正常,但是经常会出现这样一种情况,代码改到一半,发现你不应该修改。 

8.1、情况一:未增加(GIT ADD)&提交(GIT COMMIT)

         如果在工作区之中的代码并没有增加到暂存区之中,那么如果要恢复到原始状态是很容易的。 
范例:现在假设修改了Hello.java


public class Hello {
public static void main(String args[]) {
System.out.println("yootk.COM") ;
         老子就要改代码,爱错不错!
                   我就这么喜欢捣乱.
}
}

         但是只要是文件一修改,那么git就可以立即跟踪到状态。 

但是后来发现,此种修改实在是不应该进行,如果进行了,只能有一个结论:此人脑袋有问题。但是写代码的时候可能不知道上一次修改状态。 
范例:恢复


git checkout -- Hello.java

         执行之后发现Hello.java文件就恢复到了一个原始的状态(上一次的提交状态)。

8.2、情况二:已增加(GIT ADD)&未提交(GIT COMMIT)

         现在假设要修改的文件已经提交到了暂存区之中。 
范例:将Hello.java代码提交到暂存区中


git add .

         当查询状态时: 

在状态查询的时候已经给出了用户的提示,即:你可以根据HEAD指针来恢复文件。 
范例:从暂存区之中退出


git reset HEAD Hello.java

         于是再次查询状态。 

相当于现在已经由暂存区中保存的内容恢复到了工作区,那么既然在工作区了,就可以直接恢复原始状态。 
范例:恢复原始状态


git checkout -- Hello.java

         个人建议:养成良好的开发习惯,别像演示那样这么对待代码。

9、删除文件

         现在在仓库之中存在有Demo.java文件,但是假设这个文件从此之后不再使用了呢?只有一个解决方案:删除。但是在GIT里面对于删除文件这一功能严格来讲也属于一个修改操作。 
范例:从磁盘上删除Demo.java文件


del Demo.java

范例:当文件删除之后下面查询状态;


git status


这个时候文件是从当前工作区的磁盘中删除了,同时也提示文件被删除。 
范例:提交更新


git commit -a -m "Delete Demo.java File"

         但是如果说发现文件被删除错误了呢?则应该进行恢复。 
范例:恢复文件


git reset --hard bc8e842247b3d78

         如果文件被删除,则只能够利用版本控制的方式进行恢复。

10、总结

        以上的所有操作都只是针对于本地仓库的改善,但是这些命令不管是本地操作还是远程操作都是可以使用的,同时一定要掌握GIT的存储结构。

  • 大小: 328.9 KB
分享到:
评论

相关推荐

    Pro_Git中文版

    Pro_Git中文版,从入门到精通,向你系统全面讲解Git的使用

    02尚硅谷_Git.docx

    ·课程中,Eclipse和IDEA这两种企业一线开发环境都使用到了 3.技术讲解更深入、更全面: ·课程共30天,715个知识视频小节,涉及主流Java使用的方方面面,全而不冗余 ·全程内容涵盖数据结构、设计模式、JVM内存...

    Git教程,讲解基本概念、架构和原理、具体使用

    内容: Git基本概念 Git架构和工作原理 Git具体使用 目标: 了解Git是什么 配置和搭建Git环境 使用Git控制程序版本

    Git介绍与使用-培训专用课程PPT

    1、Git介绍和使用教程,主要针对新手入职快速自学git的使用,也可供大佬面向...3、总页数59页,内容丰富,知识丰富,覆盖面全,包含gitlab为例的开发场景演练,学完并跟着课程中的操作一遍后,基本能掌握git的使用。

    git使用培训教程

    常用git命令讲解以及实例 git init git add git commit git log git status git branch git checkout git pull git push

    git的经典讲解

    git的经典讲解

    linux环境下GIT学习讲解PPT

    本文是一个专门介绍Git的PPT,可以用来给新手讲解关于Git的知识。从Git简介、Git安装、创建Git版本库、Git版本库中的版本控制与搭建Git服务器五个方面介绍Git。

    git讲解.pdf

    git学习资料,讲解git在linux系统中的安装过程和如何使用

    《ProGit》——Git使用和原理讲解

    《ProGit》,很不错的一本书籍,对于Git的使用和原理具有不错的讲解。此书籍是中文版。

    Git中文学习文档

    git中文学习文档,专业的git使用讲解,git中文学习文档,专业的git使用讲解

    Git远程仓库的使用

    参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。...该文档很好的讲解了git的远程仓库的使用。

    Git教学视频详解

    Git教学视频详解熟悉在工作过程中常用的命令的使用,帮助你快速掌握git的使用

    20个常用GIT命令详细讲解

    该文件详细讲解了20个常用的GIT命令, 这些都是我们平时使用最多的命令. 本文件是一个chm格式的帮助文件.

    Git说明书电子书,有pdf和epub版本,主要讲解Git怎么使用

    git-scm.com官方开放免费版权的电子书progit,有pdf和epub版本,主要讲解Git怎么使用: 1. 起步 1.1 关于版本控制 1.2 Git 简史 1.3 Git 是什么? 1.4 命令行 1.5 安装 Git 1.6 初次运行 Git 前的配置 1.7 获取帮助 ...

    精通Git(第二版简体中文)_带书签

    如果你刚刚启程探索Git,本书对于Git的用法、基本命令和分支机制的讲解将助你轻松入门、不走弯路。 如果你在Git之路上已经走了一些时日,本书关于Git服务器、配置文件和钩子系统的内容将为你补充继续前行所需的能量...

    git使用教程.pdf

    文档给出了完整学习git的链接,内容丰富,从git的版本到git的使用,git的仓库建设等。讲解透彻。

    精通Git对Git操作详细讲解及描述

    精通Git对Git操作详细讲解及描述

    Git和GitHUP讲解视频

    尚硅谷-Git和GitHUP讲解视频 git视频 github视频 全套

    git讲解与总结

    这是学习过程中总结的一些经验,写成文档,等待大家下载学习和阅读。

    Git开发操作文档 全面介绍Git技术

    这份Git开发操作文档是一份全面介绍Git技术的文档,内容包括了Git的基本概念、使用方法和常见问题解决方案,以及Git在版本控制和协同开发中的应用。 该文档首先介绍了Git的基本概念和原理,包括Git的工作流程、版本...

Global site tag (gtag.js) - Google Analytics