基于苏玲老师<玩转 Git 三剑客>视频学习的一点总结。——极客时间

1、版本控制系统的演变
 VCS 出现前
  用目录拷贝区别不同版本
  公共文件容易被覆盖
  成员沟通成本很高,代码集成效率低下

 集中式 VCS
  有集中的版本管理服务器器
  具备文件版本管理理和分支管理理能力
  集成效率有明显地提高
  客户端必须时刻和服务器相连

 分布式 VCS
  服务端和客户端都有完整的版本库
  脱离服务端,客户端照样可以管理理版本
  查看历史和版本比较等多数操作,都不需要访问服务器器,比集中式 VCS 更能提高版本管理理效率

 Git的特点
  最优的存储能力、非凡的性能、开源的、很容易做备份、支持离线操作、很容易定制工作流程
2、安装Git

Git官网:https://git-scm.com/
参考文档:https://git-scm.com/book/en/v2

3、最小配置
配置user.name和user.email

$ git config --global user.name ‘your_name’
$ git config --global user.email ‘your_email@domain.com’

config 的三个作用域

$ git config --local       #local只对仓库有效,缺省等同于 local
$ git config --global     #global对登录用户所有仓库有效
$ git config --system   #system对系统的所有用户有效

显示 config 的配置,加 --list

$ git config --list --local
$ git config --list --global
$ git config --list --system

清除,--unset

$ git config --unset --local user.name
$ git config --unset --global user.name
$ git config --unset --system user.name

实例:

$ git config  --global user.name "Jone"
$ git config  --global user.email "764651475@qq.com"
$ git config  --global --list
sendpack.sideband=false
user.name=Jone
user.email=764651475@qq.com

4、创建第一个仓库
两种方式:

  1. 用 Git 之前已经有项目代码

    $ git init
    $ cd 某个⽂文件夹
  2. 用 Git 之前还没有项目代码
    $ cd 项目代码所在的文件夹
    $ git init your_project      #会在当前路径下创建和项目名称同名的文件夹
    $ cd your_project

实例

$ git init git_learning
Initialized empty Git repository in D:/git_learning/.git/
$ cd git_learning/
$ git status
On branch masterNo commits yetnothing to commit (create/copy files and use "git add" to track)$ echo "hello world!" > first.txt            #添加第一个文件$ git status                             #显示当前git状态
On branch master
No commits yet
Untracked files:(use "git add <file>..." to include in what will be committed)first.txt
nothing added to commit but untracked files present (use "git add" to track)$ git add first.txt            #添加到暂存区
warning: LF will be replaced by CRLF in first.txt.
The file will have its original line endings in your working directory.$ git commit -m"Add first file"    #提交
[master (root-commit) c8588e4] Add first file1 file changed, 1 insertion(+)create mode 100644 first.txt$ git status
On branch master
nothing to commit, working tree clean

5、通过几次commit来认识工作区和暂存区
 在上面添加文件到暂存区时,出现警告信息,是由于Git的换行符检查功能。Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。Git可以在提交时自动地把行结束符CRLF转换成LF,而在读取代码时把LF转换成CRLF。如果该项目仅运行在Windows上的项目,可以设置false取消此功能。

$ echo "second file" > second.txt       #创建几个文件
$ echo "third file" > third.txt
$ echo "fourth file" > fourth.txt$ git status                  #查看git当前状态
On branch master
Untracked files:(use "git add <file>..." to include in what will be committed)fourth.txtsecond.txtthird.txtnothing added to commit but untracked files present (use "git add" to track)$ git add second.txt     #添加第二个文件到暂存区
warning: LF will be replaced by CRLF in second.txt.
The file will have its original line endings in your working directory.$ git config --global core.autocrlf false    #关闭换行符检查功能$ git status
On branch master
Changes to be committed:(use "git reset HEAD <file>..." to unstage)new file:   second.txtUntracked files:(use "git add <file>..." to include in what will be committed)fourth.txtthird.txt$ git commit -m"Add second file"#提交第二个文件
[master 0bd98cb] Add second file1 file changed, 1 insertion(+)create mode 100644 second.txt$ git log
commit 0bd98cb5d0d969cfc35d8c5a16d33b5924cbc6b0 (HEAD -> master)
Author: Jone <764651475@qq.com>
Date:   Thu Mar 14 16:59:25 2019 +0800Add second filecommit c8588e43dd1053684632871fb8aec1945ee6a6ab
Author: Jone <764651475@qq.com>
Date:   Thu Mar 14 16:36:00 2019 +0800Add first file$ git add third.txt
$ git commit -m"Add third file"   #提交第三个文件
[master b843c28] Add third file1 file changed, 1 insertion(+)create mode 100644 third.txt$ git status
On branch master
Untracked files:(use "git add <file>..." to include in what will be committed)fourth.txtnothing added to commit but untracked files present (use "git add" to track)$ git add fourth.txt
$ git commit -m"Add fouth file"   #提交第四个文件
[master 1d63ec8] Add fouth file1 file changed, 1 insertion(+)create mode 100644 fourth.txt$ echo "Update the file" >> fourth.txt   #修改第四个文件
$ git status
On branch master
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified:   fourth.txtno changes added to commit (use "git add" and/or "git commit -a")$ git add fourth.txt
$ git commit -m"Update fourth file"     #提交修改后的文件
[master 7376bc5] Update fourth file1 file changed, 1 insertion(+)$ git log
commit 7376bc5b2ebc3e13d4c4552ebdef348a17cd4eef (HEAD -> master)
Author: Jone <764651475@qq.com>
Date:   Thu Mar 14 17:03:07 2019 +0800Update fourth filecommit 1d63ec82259b237f58e7525ccf856a03fb880fcd
Author: Jone <764651475@qq.com>
Date:   Thu Mar 14 17:01:46 2019 +0800Add fouth filecommit b843c287804d2b5886167740f9e6c0d327540ee1
Author: Jone <764651475@qq.com>
Date:   Thu Mar 14 17:00:21 2019 +0800Add third filecommit 0bd98cb5d0d969cfc35d8c5a16d33b5924cbc6b0
Author: Jone <764651475@qq.com>
Date:   Thu Mar 14 16:59:25 2019 +0800Add second file
...

通过几次提交文件,可以总结git工作区、暂存区与历史版本之间的关系:

转载于:https://blog.51cto.com/yinsuifeng/2363174

一、Git的入门与基本使用(1)相关推荐

  1. Git高速入门——Git安装、创建版本号库以及经常使用命令

    Git高速入门--Git安装.创建版本号库以及经常使用命令 学习Git最全面的资料,在我看来是这本书-- Pro Git,网上关于Git的教程有非常多,包含当中一些非常优秀的教程.这一系列的博客,主要 ...

  2. 30分钟git命令入门到放弃

    30分钟git命令入门到放弃 Helkyle・ 15 小时前 172 | 暂无评论 这是一篇给像我这样的新手或者是熟悉图形工具的老鸟看的.仅作为快速入门的教程. learn-git git 现在的火爆 ...

  3. Git完整入门教程(从0开始)

    前言 本博客是Git的入门教程,刚刚接触Git的朋友们参照本博客流程便可以在自己电脑上实现本地与云端Github的交互,同时本博客中使用到的Git指令也是最基本的. 文章目录 前言 初始化Git仓库 ...

  4. git快速入门 push/clone/reset/merge/切换分支全都有

    本文介绍git快速入门,从安装/创建init / 发布push/版本回退reset / branch分支切换/合并分支merge 这些基本的操作都有涉及,方便新人快速入手,有需要的朋友mark一下.首 ...

  5. 带你Git从入门到精通

    带你Git从入门到精通 [本文拷贝自码霸霸微信公众号,地址:https://mp.weixin.qq.com/s/0F6bjH1GRHhTnpfJPwLe1g] 目录: 前言 Git简介 实用主义 深 ...

  6. Git 从入门到放不下

    @Git 从入门到放不下TOC Git 从入门到放不下 gafish Java基基 2019-09-22 点击上方"Java基基",选择"设为星标" 做积极的人 ...

  7. Git快速入门篇—— Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程)

    Git快速入门篇-- Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程) 前言:我们平时在整理代码的时候,尤其是与别人一起开发项目的时候,常常涉及到代码的更新,因此代码版本问 ...

  8. Git从入门到放弃的Day10

    点我下载电子版 文章目录 一.git简介 二.GIt的诞生 三.集中式和分布式区别 四.安装git,创建版本,git命令的使用 五.创建分支.合并分支(小试) 六.图文展示创建分支与合并分支原理 七. ...

  9. 送书【新书】 |《Git从入门到精通》

    又到了每周三的送书时刻啦!本周我们送出的是<Git从入门到精通> 如果你还在为不会使用git而发愁,那么福音来啦!看他!看他!看他! (文末查看送书规则) 评价 这是一本读来很有乐趣也很有 ...

  10. Git LFS 入门指南

    Git LFS 入门指南 出于好意:设计团队开始把他们大尺寸的图形文件添加到你的项目仓库当中,然而引起的结果是,你看着仓库不断增大直到数 GB 大小...... 在 GIT 中以二进制文件来运行确实是 ...

最新文章

  1. matlab中find函数的使用说明
  2. 解决pip更新问题。 You are using pip version 19.0.3, however version 19.1 is available.
  3. 从0开始学习GitHub系列之「Git 速成」
  4. 一个简单的GridView分页
  5. 第三十六讲:用好共享内存工具:Slab管理器
  6. 火狐最实用的几款插件介绍[含附件]
  7. 真空压力变送器怎么样零点标定_对于变送器你知道多少?
  8. mysql桦仔_Microsoft SQL Server 2005技术内幕:T-SQL查询笔记
  9. 已解决:nginx修改上传文件大小限制
  10. unity2020 package 下载位置
  11. vue前端页面数据加载添加loading效果
  12. 罗技鼠标驱动怎么下载?
  13. 磁盘分区怎么恢复回去?易我分区大师恢复丢失分区
  14. 什么是Linux,以及Linux发行版?(update20201118)
  15. 2022年医院三基考试肿瘤相关训练题及答案
  16. App Tamer for mac常见问题
  17. 索尼手机的摄像功能怎么样?
  18. Runtime Error(ACCESS_VIOLATION)常见解决方法
  19. JdbcTemplate增删改查总结
  20. 【网络进阶】五种IO网络模型(一)

热门文章

  1. 7、TIM定时器使用介绍
  2. 面向对象、封装、就近原则及this关键字
  3. 番茄学习法及番茄钟软件 Pomodairo 1.9
  4. 水浒q传不显示服务器列表文字,常见问题与解答
  5. word里的html标签,完整word版html标签大全推荐文档
  6. 大带宽高防高防服务器
  7. 小米手机通过电脑上网
  8. Web前端技术实验5.桂林山水风景图片
  9. 一个触发器有多少个稳态呢,触发器分类有什么
  10. 校园跑腿小程序怎么赚钱