什么是Git
Git 是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小到大的所有项目
Git易于学习, 占用空间小,性能快如闪电。它优于 Subversion、CVS、Perforce 和 ClearCase 等 SCM 工具,具有便宜的本地分支、方便的暂存区和 多个工作流等功能
可以有效、高速的处理项目从0到1的各种版本
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git
Git特点
-
直接记录快照,而非差异比较
-
近乎所有操作都是本地执行
-
时刻保持数据完整性
-
多数操作仅添加数据
Git功能
一般开发者眼中的Git:
- 从git仓库克隆数据到本地
- 在本地上进行创建、修改
- 将自己创建的文件进行上传提交
- 可以进行分支创建、分支修改,然后合并发送
- 新建分支,在仓库内最新数据fetch下来,然后再合并至主分支
- 生成补丁,将补丁递交给仓库管理员
- 通过仓库管理员查看完日志后的反馈记录,如遇开发者有冲突问题,会让开发者进行沟通,解决问题
- 一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁
仓库管理员眼中的Git:
- 通过邮件、仓库历史提交记录或者其它方式查看开发者的提交状态
- 打补丁,解决问题冲突
- 向对外服务器提交最后结果
优点:
- 适合分布式开发,强调个体
- 公共服务器压力和数据量都不会太大
- 速度快、灵活
- 任意两个开发者之间可以很容易的解决冲突
- 离线工作
缺点:
- 不符合常规思维
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
- 学习周期相对而言比较长
Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征
区别点
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 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
补充:
SVN优缺点
优点:
1、管理方便,逻辑明确,符合一般人思维习惯
2、易于管理,集中式服务器更能保证安全性
3、代码一致性非常高
4、适合开发人数不多的项目开发
缺点:
1、服务器压力太大,数据库容量暴增
2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等
3、不适合开源开发,但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题
Git 简明指南
Git安装配置
在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行
官网
进入官网后显示如下界面,点击框选区域
点击上方框选区域也会进入如下链接,如图所示,也可以直接点击此链接哦
然后根据对应得电脑系统进行点击下载
如果是windows系统则可以进行傻瓜式安装了
其他系统需要做一些配置和进行命令安装
下载地址
windows
看好自己电脑是多少位,安装对应得哦
如果打不开或者下载不了,可以在我CSDN资源里下载哦:链接
mac
Linux / Unix
中文学习网
Git命令
常用命令
命令 | 简要说明 |
---|---|
git add | 添加至暂存区 |
git add–interactive | 交互式添加 |
git apply | 应用补丁 |
git am | 应用邮件格式补丁 |
git annotate | 同义词,等同于 git blame |
git archive | 文件归档打包 |
git bisect | 二分查找 |
git blame | 文件逐行追溯 |
git branch | 分支管理 |
git cat-file | 版本库对象研究工具 |
git checkout | 检出到工作区、切换或创建分支 |
git cherry-pick | 提交拣选 |
git citool | 图形化提交,相当于 git gui 命令 |
git clean | 清除工作区未跟踪文件 |
git clone | 克隆版本库 |
git commit | 提交 |
git config | 查询和修改配置 |
git describe | 通过里程碑直观地显示提交ID |
git diff | 差异比较 |
git fetch | 获取远程版本库的提交 |
git format-patch | 创建邮件格式的补丁文件。参见 git am 命令 |
git grep | 文件内容搜索定位工具 |
git gui | 基于Tcl/Tk的图形化工具,侧重提交等操作 |
git help | 帮助 |
git init | 版本库初始化 |
git init-db* | 同义词,等同于 git init |
git log | 显示提交日志 |
git merge | 分支合并 |
git mergetool | 图形化冲突解决 |
git mv | 重命名 |
git pull | 拉回远程版本库的提交 |
git push | 推送至远程版本库 |
git rebase | 分支变基 |
git rebase–interactive | 交互式分支变基 |
git reflog | 分支等引用变更记录管理 |
git remote | 远程版本库管理 |
git repo-config* | 同义词,等同于 git config |
git reset | 重置改变分支“游标”指向 |
git rev-parse | 将各种引用表示法转换为哈希值 |
git revert | 反转提交 |
git rm | 删除文件 |
git show | 显示各种类型的对象 |
git stage* | 同义词,等同于 git add |
git stash | 保存和恢复进度 |
git status | 显示工作区文件状态 |
git tag | 里程碑管理 |
用户信息
配置个人的用户名称和电子邮件地址
// 配置用户名
git config --global user.name "root"
// 配置电子邮件地址
git config --global user.email [email protected]
用了 --global
选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里
查看个人的用户名称和电子邮件地址
// 配置用户名
git config user.name
// 配置电子邮件地址
git config user.email
路径、文件
查看:
pwd
修改路径则是传统的cd xx
命令
查看项目文件ll
创建gitee仓库
因为外网GitHub暂时进不去就不教使用GitHub了,步骤一样的哦
首先我们需要创建个人账户哦
按照步骤填写即可
mkdir test // 创建文件夹
cd test // 进入文件夹
git init // 初始化
touch README.md // 创建md格式文件
git add README.md // 将文件提交暂存区
git commit -m "first commit" // 提交
git remote add origin https://gitee.com/still-far-away/test.git // 选择自己的仓库
git push -u origin master // 推送
在本机做完这些刷新页面就可以了
选择仓库地址后面地址就是在这呢
我们也可以通过这个地址进行克隆
但是这时候会有一个提示,没有克隆权限
这时候我们运行
ssh-keygen
创建秘钥
在出现提示时候直接enter
创建完毕后他会告诉你一个地址
在C盘下哦
运行下面代码查看秘钥
cat ~/.ssh/id_rsa.pub
将秘钥复制
粘贴至这里即可 点击添加
上面只是为单独仓库设置
也可以全局
再次克隆即可成功
后续博文更加精彩哦,敬请期待