1.安装GIT

现在的Linux和Unix包括MAC有的已经自带git,没有自带git的话,在Debian或Ubuntu Linux系统下执行sudo apt-get install git或者sudo apt-get install git-core就可以了,MAC的话可以从Xcode里面安装,运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

Windows的话可以用msysgit,相当于Windows版的Git,http://msysgit.github.io/下载,然后按默认选项安装即可,安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

2.设置用户名和密码,因为git是分布式版本控制系统,所以每个机器必须设置用户名和邮箱

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

你也可以直接进入git的配置文件中修改

找到.gitconfig,用vim或者其他的编译器打开该文件,就会看到[user]下面的name和email

直接修改完保存退出即可。

3.创建版本库

随便找个空闲的地方,建立一个目录,把所有的代码都放进去,(应该说找到你代码所在的文件夹,路径中最好没有中文)

进去那个文件夹执行命令git init(该命令的含义就是这个文件夹就可以跟踪了,这里面的东西修改删除都可以跟踪,也可以恢复)

4.把该文件夹下的所有文件都添加到仓库,再把所有文件提交到仓库,顺便写一个说明。比如:

git add 文件名.后缀,或者git add *接着提交所有的文件,git commit -m“操作的详细信息,更改了或删除了什么东西相当于日志”

5.之后的每次修改文件(就是每次写完代码)都要git add *,git commit -m”说说今天都干了什么事,代码编到哪里了”

如果忘记了上次所做的修改可以调用git diff或者git log或者git log --pretty=oneline

来查看上次的改动,你还可以通过git status来判断文件的状态,比如有几个文件没有提交,或者有几个文件没有添加

6.回退

每次的提交git都会有一串数字来确保与之相对应的一次操作,可以把它当作一个序列号或者版本号,执行git log或者git log --pretty=oneline你就会看到这些数字,每次的数字都不一样,这就是说你可以提交N多次其中的数字和对应的操作内容都不会错,所以就可以根据这些数字进行回退,假如需要回退的话,就可以根据这些数字回退到当时的状态。回退的命令就是git reset ,回退到上一次的版本就是git reset --hard HEAD^,上上一次就是git reset ––hard HEAD^^,还可以回退到前N个版本git reset ––hard HEAD~N,也可以根据那一串数字进行回退,git reset ––hard 那一串数字。还有一种情况更无语,就是回退之后发现不行,再恢复回退之前的状态,这个也是可以实现的,第一种方法就是找到那一串数字,直接用git reset ––hard 那一串数字。第二种方法你可以通过git reflog来查看你的每一次命令,这个命令记录的有那一串数字还有相应的操作。找到那一串数字应该就可以恢复了。

7.工作区和版本库

工作区就是这个目录,所有的文件都可以看到更改,就是存储你代码的那个文件夹,而版本库就是当前目录里一个隐藏的文件夹,名字是.git

这个文件夹里面存放的有关于日志还有文件的状态(那些添加了,那些提交了)等等

8.撤销工作区的修改

git checkout -- 文件名.后缀名

撤销暂存区的修改(暂存区就是add以后的地方,撤销的话先从暂存区取出来,再接着撤销工作区的文件)

git reset HEAD file,git checkout -- 文件名.后缀名

9.删除文件

如果该文件没有添加到暂存区的话,那么直接rm删掉就可以了,如果该文件提交到版本库里的话,只在工作区删除的话,git会提醒你工作区里的文件和版本库里的文件不符,那么要么你把版本库里的也给删掉,要么就从版本库里在拉一份过来,拉过来的命令是(git checkout —文件的名字.后缀),在版本库里删除文件的命令是(git rm 文件名.后缀,记得还得再提交一次)。

GIT版本控制工具总结的更多相关文章

  1. Git版本控制工具(三)----远程仓库GitHub的使用

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. git版本控制工具(二)----本地版本库的常用操作

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  3. Git版本控制工具(一)----git的安装及创建版本库

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. Git 版本控制工具(学习笔记)

    GIT(分布式) 一.Git 初始版本控制工具 1. 安装Git Ubuntu系统下,打开shell界面,输入: sudo apt-get install git-core  之后回车输入密码,即可完 ...

  5. 使用Git版本控制工具管理GitHub

      使用Git版本控制工具管理GitHu Git是一个分步式的管理系统:只要上传操作得当,所有的都可以相当于是中央服务器,成员代码共享,A写的代码B也有,一般把一个人当做主机,其他人通过该主机拼装代码 ...

  6. Git版本控制工具学习

    Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. ...

  7. Git 版本控制工具使用介绍------Windows系统下使用

    Git 是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什 ...

  8. git版本控制工具基本用法讲解(转)

    一.安装Git 在linux系统使用非常方便,只需要打开shell界面,并输入: ? 1 sudo apt-get install git-core 按下回车后输入密码,即可完成Git的安装.但我们可 ...

  9. Git版本控制工具(1)

    学习Git的最佳资料网站: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ 这 ...

  10. 再次学习Git版本控制工具

    Git 究竟是怎样的一个系统呢?为什么在SVN作为版本控制工具已经非常流行的时候,还有Git这样一个版本控制工具呢?Git和SVN的区别在哪儿呢?Git优势又在哪呢?下面PHP程序员雷雪松带你一起详细 ...

随机推荐

  1. python 之__new__

    注意: 继承自object的新式类才有__new__方法 类中的__init__方法依赖__new__方法的正确返回,init中的self就是__new__返回的实例 __new__至少要有一个参数c ...

  2. EntityFramework Code-First 简易教程(二)-------Code First约定

    Code First 约定 在前一篇中,我们已经知道了EF Code-First怎样从模型类(domain classes)中创建数据库表,下面,我们开始学习默认的Code-First约定. 什么是约 ...

  3. web.config中的InProc模式 与 StateServer模式[转]

    开发asp.net应用时,修改web.config中的SessionState节点. <sessionState mode="StateServer" stateConnec ...

  4. python第四十二课——__str__(self)函数

    4.__str__(self): 作用: 创建完对象,直接打印对象名/引用名我们得到的是对象的内存信息(十六进制的地址信息), 这串数据我们程序员并不关心,我们更希望看到的是属性赋值以后的内容(属性赋 ...

  5. BZOJ1005:[HNOI2008]明明的烦恼(组合数学,Prufer)

    Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N ...

  6. oracle 批量更新merge语句

    merge into (SELECT * FROM QUERY_DB1.test_MPOS  ) T1 using (SELECT FLAG FLAG1,IN_MNO FROM QUERY_DB1.t ...

  7. MP实战系列(九)之集成Shiro

    下面示例是在之前的基础上进行的,大家如果有什么不明白的可以参考MP实战系列的前八章 当然,同时也可以参考MyBatis Plus官方教程 建议如果参考如下教程,使用的技术为spring+mybatis ...

  8. apache,R,P,url重写,伪静态,反向代理

    需求: 1,浏览器地址栏中URL不变 2,伪静态重写生效 ===================== <VirtualHost *> ServerName xinwen.888.com.c ...

  9. 真实的物理机安装Centos7系统后网卡只有lo没有eno1的解决办法:实际上是物理机未安装网驱动卡

    问题症状: 我真实的物理机安装Centos7系统后,在/etc/sysconfig/目录下查看,发现网卡只有lo没有eno1,出现该问题的实际原因是物理机未安装网驱动卡. 解决办法: 不多说了,让我们 ...

  10. WorldWind源码剖析系列:下载队列类DownloadQueue

    下载队列类DownloadQueue代表具有优先级的下载队列,该类的存储下载请求的数组链表专门按一定的优先级来存储下载请求的.该类的类图如下. 下载队列类DownloadQueue各个字段的含义说明如 ...