什么是Git
- Git是目前世界上最先进的分布式版本控制系统。
- Git是免费、开源的
最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper
作者
Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰
特点
1. 直接记录快照,而非差异比较
2. 近乎所有操作都是本地执行
3. 时刻保持数据完整性
4. 多数操作仅添加数据
优点
适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
-
缺点
模式上比SVN更加复杂。
- 学习周期相对而言比较长
- 不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
git的使用
初次使用的时候
提交自己的GitHub用户名和密码
- 安装完成后,需要进行设置,在命令行输入以下代码: ```
- $ git config —global user.name “Your Name”
- $ git config —global user.email “email@example.com” ``` 顾名思义,这是设置你的名字和Email地址。
- 如果当前配置过用户名和邮箱,我们可以查看一下用户名和密码: ```
- $ git config user.name
- $ git config user.email ```
进行分盘
- . cd D: 进入相应的磁盘
- . mkdir ‘你自己定义的件夹名’ (创建一个文件夹)
- . cd ‘你自己定义的件夹名’ (进入文件夹)
-
初始化
通过如下命令把这个目录变成Git可以管理的仓库: ```
- $ git init
- Initialized empty Git repository in /Users/Administrator/learngit/.git/
```
这样Git就把仓库建好啦,我们可以看到在当前目录下多了一个 .git 的目录,这个目录是Git来跟踪管理版本库的。
将文件提交到git服务器
- 把文件添加到版本库(把咱们的文件存放在一个神秘的地方 >>>> 暂存区 (暂存区在本机)
我们在 learngit 目录下编写一个 readme.txt 文件,内容如下:
1. Git is a version control system.
2. Git is free software.
(1) 用 git add 命令,把文件添加到仓库:
$ git add readme.txt
执行以上命令,没有任何显示。
(2) 用 git commit 命令,把文件提交到仓库:
1. $ git commit -m "wrote a readme file" //-m后面输入的是本次提交的说明,可以输入任意内容。
2. [master (root-commit) eaadf4e] wrote a readme file
3. 1 file changed, 2 insertions(+) //1 file changed:1个文件被改动(新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt内有两行内容)
4. create mode 100644 readme.txt
查看commit状态和修改文件
- 提交后会出现以下命令
- 当文件被修改之后
运行 git status 命令:
1. $ git status //查看仓库当前的状态
2. On branch master
3. Changes not staged for commit: //没有文件将要被提交
4. (use "git add <file>..." to update what will be committed)
5. (use "git checkout -- <file>..." to discard changes in working directory)
6.
7. modified: readme.txt
8.
9. no changes added to commit (use "git add" and/or "git commit -a")
上面的命令告诉我们,readme.txt 文件被修改过了,但还没有准备提交的修改。
如果我们想知道上次是怎么修改readme.txt 文件的,需要用 git diff 命令:
1. $ git diff readme.txt
2. diff --git a/readme.txt b/readme.txt
3. index 46d49bf..9247db6 100644
4. --- a/readme.txt
5. +++ b/readme.txt
6. @@ -1,2 +1,2 @@
7. -Git is a version control system. //这一句是被删掉的
8. +Git is a distributed version control system. //这一句是新添加的
9. Git is free software.
版本回退
- git reset —hard HEAD^ 退回到上个版本 如果需要退回好多版本就在后⾯加上 ^ 例: git reset —hard HEAD^^退回两个版本。 然后去查看readme.txt是否成功退回。
- 这时候用 cat 命令查看一下 readme.txt 的内容: ```
- $ cat readme.txt //查看 readme.txt 文件的内容
- Git is a distributed version control system.
Git is free software. ``` 果然 readme.txt 文件返回到了上一个版本。
删除
新建一个b.txt
- 然后添加commit到库中。 并删除
- . git add
- . git commit -m ‘备注’
- . rm b.txt 这个是删除b件的命令
- 回过头来看文件夹中的b.txt
b.txt不见了,查看下状态。
可以commit,可以放弃修 git reset —hard 版本号来回复文件