什么是Git

  1. Git是目前世界上最先进的分布式版本控制系统。
  2. Git是免费、开源的
  3. 最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper

    作者

    Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰

    特点

    1. 直接记录快照,而非差异比较
    2. 近乎所有操作都是本地执行

    3. 时刻保持数据完整性
    4. 多数操作仅添加数据

    优点

  4. 适合分布式开发,强调个体。

  5. 公共服务器压力和数据量都不会太大。
  6. 速度快、灵活。
  7. 任意两个开发者之间可以很容易的解决冲突。
  8. 离线工作。

    缺点

  9. 模式上比SVN更加复杂。

  10. 学习周期相对而言比较长
  11. 不符合常规思维。
  12. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

    git的使用

    初次使用的时候

  13. 提交自己的GitHub用户名和密码

  • 安装完成后,需要进行设置,在命令行输入以下代码: ```
  1. $ git config —global user.name “Your Name”
  2. $ git config —global user.email “email@example.com” ``` 顾名思义,这是设置你的名字和Email地址。
  • 如果当前配置过用户名和邮箱,我们可以查看一下用户名和密码: ```
  1. $ git config user.name
  2. $ git config user.email ```

进行分盘

  • . cd D: 进入相应的磁盘
  • . mkdir ‘你自己定义的件夹名’ (创建一个文件夹)
  • . cd ‘你自己定义的件夹名’ (进入文件夹)
  • . pwd 显示(你自己定义的件夹名)的路径

    初始化

  • 通过如下命令把这个目录变成Git可以管理的仓库: ```

  1. $ git init
  2. Initialized empty Git repository in /Users/Administrator/learngit/.git/ ``` 这样Git就把仓库建好啦,我们可以看到在当前目录下多了一个 .git 的目录,这个目录是Git来跟踪管理版本库的。

    将文件提交到git服务器

  • 把文件添加到版本库(把咱们的文件存放在一个神秘的地方 >>>> 暂存区 (暂存区在本机)

我们在 learngit 目录下编写一个 readme.txt 文件,内容如下:

  1. 1. Git is a version control system.
  2. 2. Git is free software.

(1) 用 git add 命令,把文件添加到仓库:

  1. $ git add readme.txt

执行以上命令,没有任何显示。
(2) 用 git commit 命令,把文件提交到仓库:

  1. 1. $ git commit -m "wrote a readme file" //-m后面输入的是本次提交的说明,可以输入任意内容。
  2. 2. [master (root-commit) eaadf4e] wrote a readme file
  3. 3. 1 file changed, 2 insertions(+) //1 file changed:1个文件被改动(新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt内有两行内容)
  4. 4. create mode 100644 readme.txt

查看commit状态和修改文件

  • 提交后会出现以下命令

image.png

  • 当文件被修改之后

运行 git status 命令:

  1. 1. $ git status //查看仓库当前的状态
  2. 2. On branch master
  3. 3. Changes not staged for commit: //没有文件将要被提交
  4. 4. (use "git add <file>..." to update what will be committed)
  5. 5. (use "git checkout -- <file>..." to discard changes in working directory)
  6. 6.
  7. 7. modified: readme.txt
  8. 8.
  9. 9. no changes added to commit (use "git add" and/or "git commit -a")

上面的命令告诉我们,readme.txt 文件被修改过了,但还没有准备提交的修改。
如果我们想知道上次是怎么修改readme.txt 文件的,需要用 git diff 命令:

  1. 1. $ git diff readme.txt
  2. 2. diff --git a/readme.txt b/readme.txt
  3. 3. index 46d49bf..9247db6 100644
  4. 4. --- a/readme.txt
  5. 5. +++ b/readme.txt
  6. 6. @@ -1,2 +1,2 @@
  7. 7. -Git is a version control system. //这一句是被删掉的
  8. 8. +Git is a distributed version control system. //这一句是新添加的
  9. 9. Git is free software.

版本回退

image.png

  1. git reset —hard HEAD^ 退回到上个版本 如果需要退回好多版本就在后⾯加上 ^ 例: git reset —hard HEAD^^退回两个版本。 然后去查看readme.txt是否成功退回。
  2. 这时候用 cat 命令查看一下 readme.txt 的内容: ```
  3. $ cat readme.txt //查看 readme.txt 文件的内容
  4. Git is a distributed version control system.
  5. Git is free software. ``` 果然 readme.txt 文件返回到了上一个版本。

    删除

  6. 新建一个b.txt

image.png

  1. 然后添加commit到库中。 并删除

image.png

  • . git add
  • . git commit -m ‘备注’
  • . rm b.txt 这个是删除b件的命令
  1. 回过头来看文件夹中的b.txt

image.png

  1. b.txt不见了,查看下状态。

  2. 可以commit,可以放弃修 git reset —hard 版本号来回复文件