1.创建版本库

(1)设置Git的配置变量。这些设置会在全局文件(.gitconfig)或系统文件(/etc/gitconfig)中做永久记录

$ git config --global user.name "Kimisme"

$ git config --global user.email Kimisme@Git.com

(2)在本用户的全局配置中,设置Git别名

$ git config --global alias.st status

$ git config --global alias.ci commit

$ git config --global alias.co checkout

$ git config --global alias.br branch

(3)在Git命令输出中开启颜色显示

$ git config --global color.ui true
(4)查看全局配置

$ git config --list –global

$ git config user.name

(5)创建一个新的工作目录,并创建版本库

$ cd path/to/my/workspace

$ mkdir demo

$ cd demo

$ git init

(6)查看工作区中隐藏的目录,.git目录就是Git版本库(又叫仓库,repository),版本库所在的目录就被称为工作区

$ ls -aF
(7)在工作区创建一个文件

$ echo "Hello." > welcome.txt
(8)将新建的文件添加到版本库

$ git add welcome.txt

(9)搜索工作区的文件内容

$ git grep "He"

(10)提交

$ git commit -m "initialized"
[master (root-commit) 7daf0ef] initialized
1 file changed, 1 insertion(+)
create mode 100644 welcome.txt

-m参数设置提交说明为“initialized”

第一行解释:此次提交是提交在名为master分支上,且是该分支的第一个提交(root-commit),提交ID为7daf0ef

第二行解释:此时提交修改了一个文件,包含一行的插入

第三行解释:此次提交创建了新文件 welcome.txt

(11)备份

$ cd ..

$ git clone demo demo-step-1
Cloning into 'demo-step-1'...
done.

2.为什么工作区根目录下有一个.git目录?

Git及其他分布式版本控制系统的一个共同特点是,版本库位于工作区的根目录下,在工作区的子目录下则没有任何其他跟踪文件或目录;

传统的集中式版本控制系统的版本库和工作区是分开的,甚至在不同的主机上;

Git这种将版本库放在工作区根目录下的设计使得所有的版本控制操作都在本地完成;

3.Git将版本库(.git目录)放在工作区目录下,那么Git的一些命令一定要在工作区根目录下执行吗?

当在Git工作区的某个子目录下执行操作的时候,会在工作区目录中依次向上递归查找.git目录,找到的.git目录就是工作区对应的版本库,.git所在的目录就是工作区的根目录,文件.git/index记录了工作区文件的状态(实际上是暂存区的状态)

(1)在工作区中建立目录/a/b/c,并进入该目录中

$ mkdir -p a/b/c

cd a/b/c

(2)显示版本库.git目录所在的目录

$ git rev-parse --git-dir

(3)显示工作区根目录

$ git rev-parse --show-toplevel

(4)相对于工作区根目录的相对目录

$ git rev-parse --show-prefix

(5)显示从当前目录(cd)后退(up)到工作区的根的深度

$ git rev-parse --show-cdup

4.传统的集中式控制系统的工作区和版本库都是相分离的,Git把版本库目录放在工作区是不是不安全?

从存储安全的角度来说,如果误删了工作区,就会连同版本库一并删除,这个风险的确很高;

Git克隆可以降低因为版本库和工作区混杂在一起而导致的版本库被破坏的风险

5.是谁完成的提交

(1)查看提交日志

$ git log --pretty=oneline
(2)删除Git全局配置文件中关于user.name和user.email的设置

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

$ git config --unset --global user.email

(3)向文本中添加内容

$ echo "World" >> welcome.txt
(4)提交文本

$ git add welcome.txt

$ git commit -m "add world"

出错了!

因为没有配置user.name和user.email

Git学习笔记(2)-初探Git的更多相关文章

  1. 【Git学习笔记】初始化Git仓库和版本回退

    学习地址 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 什么是版本库呢?版本库又 ...

  2. git学习笔记之二 -- git分支

    前面对git基础作了简单的总结,这次对git的杀手锏--分支做一总结. Git分支简介 几乎每个版本控制系统都以某种形式支持分支,可以使你的工作从开发主线上分离开来,以免影响开发主线.很多版本控制系统 ...

  3. Git学习笔记01--常用Git命令、cmd命令及Git总结性知识

    资源:外国网友制作的 Git Cheat Sheet 第二次学习廖雪峰老师的Git教程,学习过程中把教程中涉及到的Git命令及总结性知识记录下来方便二次复习. 知识点 所有的版本控制系统,其实只能跟踪 ...

  4. Git学习笔记(windows git之初体验)

    阿里国内镜像地址: https://npm.taobao.org/mirrors/git-for-windows/ 最近在学习廖雪峰老师关于git的教程,链接可以在我的首页找到.首先使用国内镜像下载并 ...

  5. git学习笔记03-本地git常用操作及原理-文件增删改

    1.查看git状态 git status  这个可以告诉我们对git做了哪些操,比如增删改 2.既然我们修改了东西,有的时候想看看修改了什么,毕竟我们的记忆力并不如电脑 git diff 文件名 (默 ...

  6. git学习笔记——廖雪峰git教程

    OK,先附上教程--廖雪峰的官方网站 友情连接:git官网 简介 这里我只想引用他的原文: Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的.实际情况是这样的: L ...

  7. 【Git学习笔记】用git pull取回远程仓库某个分支的更新,再与本地的指定分支自动merge【转】

    本文转载自:http://blog.csdn.net/liuchunming033/article/details/45367629 git pull的作用是,从远程库中获取某个分支的更新,再与本地指 ...

  8. Git学习笔记01-安装Git

    学习的资料来自廖雪峰官方网站的Git教程,菜鸟教程的Git教程 Git是一个分布式版本控制工具,在windows上使用Git可以直接从官网下载,然后默认选项安装即可. 安装完成后,在开始菜单中找到找到 ...

  9. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

随机推荐

  1. SQL SERVER示例:修改自定义数据类型精度

    /*--修改自定义数据类型精度的示例      自定义数据类型一旦被引用,就不能再修改和删除,如果要修改数据的精度,就非常麻烦,下面的示例演示了如何修改      假设要修改的自定义变量名为aa -- ...

  2. 输入一个URL之后。。。

    1.输入URL2.浏览器去浏览器缓存.系统缓存.路由器缓存查找缓存记录,有则直接访问URL对应的IP,无则下一步3.DNS解析URL,获得对应的IP4.浏览器通过TCP/IP三次握手连接服务器5.客户 ...

  3. 使用Tornado实现http代理

    0x00 http代理 http代理的用处非常多,市面上也有公开的代理,可是有时候为了工作须要,比方分析应用层流量.做数据訪问控制.甚至做监控等等.Tornado提供了一些非常方便的环境和API,我们 ...

  4. 手把手教你开发Chrome扩展三:关于本地存储数据

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...

  5. 介绍css 的3D 变换(3D transform)

    https://desandro.github.io/3dtransforms/docs/card-flip.html ---------------------------------------- ...

  6. Android系统开发(4)——Autotools

    Autotools工具的构成 1.autoscan autoscan是用来扫描源码文件夹生成configure.san文件的,configure.san包括了系统配置的基本选项.里面都是一些宏定义,我 ...

  7. FlashBuilder 4.7 非正常关闭导致的不能启动的解决的方法

    停电.或者卡死.FB就不能正常启动了. 以下是老外给出的方法,好用: 进入.metadata/.plugins/org.eclipse.core.resources 文件夹 删除.snap文件 假设是 ...

  8. 一张图搞定OAuth2.0 在Office应用中打开WPF窗体并且让子窗体显示在Office应用上 彻底关闭Excle进程的几个方法 (七)Net Core项目使用Controller之二

    一张图搞定OAuth2.0   目录 1.引言 2.OAuth2.0是什么 3.OAuth2.0怎么写 回到顶部 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常 ...

  9. Android处理日期

    近期做一个项目,后台返回的日期是RFC3339格式的.之前没有看到过,当中遇到了几个问题以及解决 1.2015-11-18T14:49:55Z转换 在SimpleDateFormat中给出了几种格式 ...

  10. POJ 1625 Censored! (AC自己主动机 + 高精度 + DP)

    题目链接:Censored! 解析:AC自己主动机 + 高精度 + 简单DP. 字符有可能会超过128.用map映射一下就可以. 中间的数太大.得上高精度. 用矩阵高速幂会超时,简单的DP就能解决时间 ...