Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
Git 与 SVN 区别
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
常用Git命令
功能 | 命令 | 可选参数 | 说明 |
---|---|---|---|
配置 |
ssh-keygen |
生成密钥(注意要在~/.ssh文件夹执行,或生成后移动到.ssh) | |
git --version |
查看git 版本 |
||
git config --list |
查看配置 |
||
git config |
--global |
设置仓库/全局配置 |
|
仓库 |
git clone |
-b | --branch | 克隆指定分支 |
--depth <depth> | 创建一个浅克隆,克隆指定历史提交记录 | ||
--shallow-since=<date> | 创建一个浅克隆,克隆指定日期的历史提交记录 | ||
git init | 初始化仓库 | ||
git remote set-url | 设置新远程地址 | ||
分支管理 |
git commit | 提交更改到暂存区 | |
git merge | 暂存区内容合并当前分支 | ||
git fetch | 把远程分支最新内容拉去到暂存区 | ||
git pull | 把远程分支最新内容拉去到暂存区并且合并到当前分支 | ||
git push | 推送分支到远程 |