Git是目前世界上最先进的分布式版本控制工具
1.Git是分布式的,SVN和CVS都是集中式的版本控制系统需要将版本库集中存放在服务器;
2.git每个历史版本存储完整的文件,SVN存储文件差异;
3.Git可离线完成大部分操作,SVN则必须联网才能工作;
4.Git有着更优雅的分支和合并实现;
5.Git有更强的撤销修改和修改版本历史的能力;
6.Git速度更快,效率更高,操作更简单而且更加安全;
Git的基本工作流程:
(1)Git使用40个16进制字符的SHA-1 Hash来唯一标示对象。
Git有四种对象:
(1)blob:文本文件、二进制文件、或者链接文件;
(2)tree:目录;
(3)commit:表示历史提交;
(4)tag:指向固定的历史提交;
获取Git仓库:
(1)git init;
(2)git clone;
git有三个区域:
(1)working directory:工作区;
(2)staging area:暂存区;
(3)history repository:历史区;
在这三个目录之间操作最常用的两个命令就是:
(1)git add
(2)git commit
(3)git status
(4)git rm
(5)git mv
(6)git ignore
我们一般都是使用git add命令向暂存区添加数据,然后使用git commit命令把存储区的数据添加到历史区。需要检出的时候就使用checkout;
我们如何查看工作区和暂存区中区别,来确保我们提交是我们所需要的,就要使用git status命令。当暂存区中有不需要的数据时,就可以使用git rm命令来删除。
使用git mv命令在工作区中重命名文件,或者移动文件,然后再添加到暂存区中。
有时候我们把工作区中不需要的文件忽视掉,就要使用git ignore.
接下来我们看下 Mac下Git命令汇总
2.git --version
查看当前使用的git版本;
3.git config --global user.name Jack
配置git的用户名;
4.git config --global user.email *****
配置git的邮箱;
5.git config --help
或者
git help config
或者
man git-config
查看git config的文档
6.git config --global --add user.name Mike
增加一位用户;
7.git config --list --global
查看当前的用户名和邮箱;
git config --global --unset user.name Mike
删除某一个用户名或者邮箱;git log
查看日志,需要在某个repository下面执行;
10 . git init repo
创建一个名字为repo的仓库;
11.git init --bare bare_repo
创建一个名字为bare_repo的裸仓库;
12.git init
直接把某个文件夹作为git仓库,在某个文件夹下执行该命令;
- git clone
克隆某个仓库;
14.mkdir aaa
创建一个文件夹aaa;
15.touch a
新建一个a文件;
git add a b
把a和b两个文件添加到暂存区;git commit -m "注释"
把暂存区中的文件提交到历史区;git rm a
从工作空间和暂存区删除a文件;
19.git rm --cached a
从暂存区删除a;
git checkout a
从历史区检出a文件到工作区;git mv a c
把工作区的a文件重命名为c文件(其实这个命令是一系列操作的综合);
其实该命令执行的操作包括:
(1)把a文件删除了;
(2)新建一个c文件;
(3)在暂存区中删除了a文件;
(4)并把c文件add到了暂存区;
注意并没有执行commit命令,此时只是保证了工作区和暂存区的同步;
mv a c
仅仅是把a文件重命名为c,没有其他的任何操作。
- git log
查看当前目录下的日志。