Git简介

  • A+
所属分类:CI/CD 自动化

Git全宇宙最牛逼的分布式的版本控制系统,没有之一 !

一、Git特点:

高端大气上档次!说其他的都然并卵!http://www.git-scm.com/

二、Git诞生记:

2002年之前diff 2002年BitKeeper 2005年不要逼我Git

1991年林纳斯·托瓦兹创建了linux,刚开始的时候什么都没有,就是一个小内核,他开源了放在网上。全世界的人都参与到开源运动中来,来编写linux,才有了现在的linux。在2002年之前,所有人都是使用diff命令来对比代码差异,真的很low,效率低下。林纳斯·托瓦兹-Linux之父不喜欢svn这些变态的东西,就是任性有自己的性格,牛人都这样!2002年的时候,有一个企业级版本控制软件BitKeeper,这家公司的老板,一看linux是一帮高大上的人在搞一件有意义的事,免费不收取版权费用,给大家用。但是这帮哥们还是很不爽,因为大家是在写全世界最牛逼的一个开源项目啊....没有之一,为什么还要用企业级的软件来做这事呢,很多成员都反对!随着人员越来越多,就有人有这种想法,把这东西给反向破解一下。于是有一个家伙Samba的作者,他就是反编译了windows,实现了linux和windows文件共享,但是微软也没有告他,因为人家是自己鼓捣写出来的。这家伙又跑过来,反编译BitKeeper,坑爹的是,人家公司监控做的给力,被发现了。企业的BOSS就不开心了,威胁要收回版权,要求道歉!这时候是2005年,林纳斯·托瓦兹非常任性的就不道歉,花了两周的时候,用C语言开发了Git这么牛逼的分布式版本控制软件!只花了一个月时间,所有linux源码都用Git管理了。牛人就是牛逼,别逼我,逼我我就自己写!!!从此在也没人听过BitKeeper是什么鬼了!

1、安装Git

yum -y install git

2、设置用户名、邮箱

  git config --global user.name "liuyalei"
  git config --global user.email "952773925@qq.com"

  查看设置

  [root@localhost ~]# git config --list
  user.name=liuyalei
  user.email=952773925@qq.com

3、设置颜色

  git config --global color.ui true

4、创建一个版本库,初始化git

  mkdir /root/liuyalei
  cd /root/liuyalei
  [root@localhost liuyalei]# git init
  Initialized empty Git repository in /root/liuyalei/.git/

5、创建一个文件

  [root@localhost liuyalei]# vim readme.txt
  [root@localhost liuyalei]# cat readme.txt
  1 mike.liu

6、查看git状态(应该是红色的,刚才定义颜色了

[root@localhost liuyalei]# git status
  # On branch master
  #
  # Initial commit
  #
  # Untracked files:
  # (use "git add..." to include in what will be committed)
  #
  #readme.txt
  nothing added to commit but untracked files present (use "git add" to 
track)

7、添加文件

  [root@localhost liuyalei]# git add readme.txt
  [root@localhost liuyalei]#

8、查看git状态,提示发现一个新文件

[root@localhost liuyalei]# git status
  # On branch master
  #
  # Initial commit
  #
  # Changes to be committed:
  # (use "git rm --cached..." to unstage)
  #
  #new file: readme.txt
  #
  [root@localhost liuyalei]#

9、递交(-m参数是修改说明,必须写)

[root@localhost liuyalei]# git commit -m "the first commit"
  [master (root-commit) 1da8bc0] the first commit
  1 files changed, 1 insertions(+), 0 deletions(-)
  create mode 100644 readme.txt
  [root@localhost liuyalei]# git status
  # On branch master
  nothing to commit (working directory clean)
  [root@localhost liuyalei]#
  ##############################

查看git记录,谁什么时间,干了什么事

  [root@localhost liuyalei]# git log
  commit 360cf0ed85ee36bf975651ec45e6c9fc1a46f978
  Author: liuyalei <952773925@qq.com>
  Date: Sat Jan 9 00:07:50 2016 -0800
  test file
  commit 1da8bc0ac5cbefb8e8083683149a03262f6ff82c
  Author: liuyalei <952773925@qq.com>
  Date: Sat Jan 9 00:05:31 2016 -0800
  the first commit
  [root@localhost liuyalei]

修改文件内容,做对比,递交

  [root@localhost liuyalei]# vim readme.txt
  [root@localhost liuyalei]# git status
  # On branch master
  # Changed but not updated:
  # (use "git add..." to update what will be committed)
  # (use "git checkout --..." to discard changes in working directory)
  #
  #modified: readme.txt
  #
  no changes added to commit (use "git add" and/or "git commit -a")
  [root@localhost liuyalei]# git diff readme.txt
  diff --git a/readme.txt b/readme.txt
  index 8cd5655..2a73423 100644
  --- a/readme.txt
  +++ b/readme.txt
  @@ -1 +1,3 @@
  1 mike.liu
  +2 sdkjfflksjf
  +3 dslkjflksdf
  [root@localhost liuyalei]# git add readme.txt
  [root@localhost liuyalei]# git commit -m "add 3"
  [root@localhost liuyalei]# git log

版本回退

  [root@localhost liuyalei]# git reset --hard HEAD^^
  HEAD is now at 1da8bc0 the first commit

解释:HEAD是当前最新版本 ^是上一个版本 ^^是上两个版本,以此类推

回退到固定一个版本

  [root@localhost liuyalei]# git reflog
  1da8bc0 HEAD@{0}: HEAD^^: updating HEAD
  f12f72a HEAD@{1}: commit: add 3
  360cf0e HEAD@{2}: commit: test file

解释:通过git reflog可以查看没一个版本,用前面序列号id去回退

  [root@localhost liuyalei]# git reset --hard 360cf0e
  [root@localhost liuyalei]# cat readme.txt
  1 mike.liu

YaLei
  • 版权声明:本站原创文章,于2017年10月31日09:06:13,由 发表,共 3720 字。
  • 转载请注明:Git简介 | YaLei Blog

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: