什么是Git?

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

为什么使用Git?

众所周知,版本控制系统分为集中式版本控制系统(SVN、CVS等)与分布式版本控制系统(Git等),那它们之间有什么区别呢?

集中式版本控制系统:版本库是集中存放在中央服务器的。如SVN在使用时,须从服务器中拉取最新版本,提交代码时,还需要更新服务器的最新内容,避免冲突,再推送到服务器;所以所以项目的参与者都需要使用到中央服务器,一单服务器出错,全员放假。

分布式版本控制系统:没有中央服务器,每个项目参与则都有一个完整的版本库,即使在没有网络的情况下亦可以提交 commit

怎么使用Git?

下载地址:https://git-scm.com/

环境配置

  • 安装:下载后按照默认选项安装即可;
  • 初次使用,配置git工作环境;Git 配置工作环境有三种形式,而我们一般使用的就是第二种:

    1. /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
    2. ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
    3. 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

    参考:https://git-scm.com/

  • 用户配置:

      >$ git config --global user.name "Your Name"
      >$ git config --global user.email "email@example.com"
    1. 查看用户配置信息:

      • git config --global --list;
    2. 注:查看系统配置信息:
      • git config --system --list ;
    3. 查看项目配置信息:
      • git config -- local --list

创建版本库

  • 进入A盘创建git仓库,进行管理git项目;

    1. 例如:创建 a:/MyWork-Git

      >$ cd /a
      >$ mkdir MyWork-Git
      >$ cd MyWork-Git
  • 初始化 git init
    1. git init : 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:

      git init

      如下:执行后仓库中出现一个名为 .git 的目录;没事千万不要手动修改这个目录里面的文件

      >$ git init
      Initialized empty Git repository in A:/MyWork-Git/.git/ 

      注;若没有看到.git目录,那是因为这个目录默认是隐藏的(windows 显示隐藏文件即可)

提交文件。

  • 初始化成功后,此时MyWork-Git就是一个git项目了;编写一个readme.txt文件,如下:
    >$ vi readme.txt
    输入内容;
    退出编辑:Esc 再 shift 输入 :wq
  • 查看当前仓库状态:

    >$ git status ;

    显示有文件更新,未加入仓库

提交

  • 第一步,用命令git add告诉Git,把文件添加到仓库:

    >$ git add readme.txt 

    再次 查看状态 :

    >git status ;

    显示有文件加入仓库,未提交

  • 第二步,用命令git commit告诉Git,把文件提交到仓库:并检查提交后的状态


    git commit命令,-m后面输入的是本次提交的说明。

修改文件

  • 修改文件内容后 ,查看改动信息

    >git  diff

查看提交记录

  • 可查看版本号

    >git log 

第一天总结

  • 如何配置git 工作环境:

    1. $ git config --global user.name "John Doe"
    2. $ git config --global user.email “xxxxx@xxx.com”
  • 如何是项目交由Git管理--->git init
  • 查看仓库状态 --->git status
  • 查看修改内容 ---> git diff
  • 提交文件: git add ----> git commit -m"xxxx"
  • 查看历史 git log

Git 教程 -- 第一天的更多相关文章

  1. 转:git教程 ~~非常好的入门教程

    --------------------------------------- notes: cdmkdir dirnametouchls > filenamelsecho "this ...

  2. 分布式版本控制系统 Git 教程

    简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布 ...

  3. [转]Git教程【译】

    [转]Git教程[译] http://www.cnblogs.com/zhangjing230/archive/2012/05/09/2489745.html 原文出处:http://www.voge ...

  4. 深入浅出Git教程(转载)

    目录 一.版本控制概要 1.1.什么是版本控制 1.2.常用术语 1.3.常见的版本控制器 1.4.版本控制分类 1.4.1.本地版本控制 1.4.2.集中版本控制 1.4.3.分布式版本控制 1.5 ...

  5. git常用命令总结--廖雪峰老师Git教程命令总结

    学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般 ...

  6. Git 教程(一):简介和安装

    为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的 ...

  7. 深入浅出Git教程【转载】转载

    深入浅出Git教程(转载)   目录 一.版本控制概要 1.1.什么是版本控制 1.2.常用术语 1.3.常见的版本控制器 1.4.版本控制分类 1.4.1.本地版本控制 1.4.2.集中版本控制 1 ...

  8. Git教程(二)-如何上传和同步自己的git项目

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Git接触并使用多年, 工作中使用较多,它的分布式存储,使每个人的电脑均为服务器的策略非常棒:再加上 ...

  9. EnjoyingSoft之Mule ESB开发教程第一篇:初识Mule ESB

    目录 1. Mule ESB基本介绍 2. Mule ESB社区版和企业版 3. Mule ESB常用场景 4. Mule ESB软件安装 客户端安装 服务端安装 5. 第一个Mule ESB应用- ...

随机推荐

  1. bzoj 303: [CQOI2009]中位数图【前缀和+瞎搞】

    处理出一个序列c,a[i]>b,c[i]=1;a[i]==b,c[i]=0;a[i]<b,c[i]=-1,然后s为c的前缀和,设w为b在a序列里的下标 注意到子序列一定横跨w,并且一个符合 ...

  2. poj 3281 Dining【最大流】

    记得把牛拆掉!拆成两个点i和i'在中间连一条流量为1的边,来限制每头牛只能选一组 一般来讲是一种物品一个消费者各占一边,但是这里有两个物品,所以考虑把牛放在中间,s向所有的食物连流量为1的边,所有食物 ...

  3. CF896C Willem, Chtholly and Seniorious(珂朵莉树)

    中文题面 珂朵莉树的板子……这篇文章很不错 据说还有奈芙莲树和瑟尼欧里斯树…… 等联赛考完去学一下(逃 //minamoto #include<bits/stdc++.h> #define ...

  4. Akka源码分析-Akka Typed

    对不起,akka typed 我是不准备进行源码分析的,首先这个库的API还没有release,所以会may change,也就意味着其概念和设计包括API都会修改,基本就没有再深入分析源码的意义了. ...

  5. 数据结构 - 链栈的实行(C语言)

    数据结构-链栈的实现 1 链栈的定义 现在来看看栈的链式存储结构,简称为链栈. 想想看栈只是栈顶来做插入和删除操作,栈顶放在链表的头部还是尾部呢?由于单链表有头指针,而栈顶指针也是必须的,那干吗不让它 ...

  6. C# winform与Javascript的相互调用[转]

    原文链接<html> <head> <meta http-equiv="Content-Language" content="zh-cn&q ...

  7. IOS应用开发版本控制工具之Versions使用,iosversions

    Versions版本控制工具破解版(Versions.zip)下载请见本博文附件.下载后在MAC安装完以后,图标是莲花状.见下图: 双击运行如下图:    点击Repository,连接SVN服务器R ...

  8. laravel5.5文件上传

    /**     * 上传文件     * @param Request $request     * @return array     */    public function upload(Re ...

  9. AJPFX关于TreeSet集合的介绍

    需求:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台.分析:1.创建键盘录入对象:          2.创建TreeSet集合,使用匿名内部类实现Compa ...

  10. AJPFX关于构造器的总结

    构造器        构造器定义        构造器作用        构造器特点        构造器修饰符        默认构造器        构造器重载        构造器和一般函数的区 ...