GIT
- Git简介
- Git与SVN的区别
- Git的优势
- Git的功能
- Git的安装
- Git的结构
- GIT命令行操作
- 本地库操作
- 本地库初始化
- 设置签名
- 基本操作
- 状态查看
- 添加
- 提交
- 查看历史记录
- 分支管理
- 什么是分支
- 分支操作
- GitHub
- 账号信息
- 创建远程库
- 创建远程库地址别名
- 推送
- 克隆
Git简介
Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。
Git易于学习, 占地面积小,具有闪电般的快速性能。它具有诸如Subversion,CVS,Perforce和ClearCase之类的SCM工具,具有廉价的本地分支,方便的暂存区域和 多个工作流等功能。
Git与SVN的区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
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的优势
- 大部分操作在本地完成,不需要联网
- 完整性保证
- 尽可能添加数据而不是删除或修改数据
- 分支操作非常快捷流畅
- 与Linux命令全面兼容
Git的功能
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
Git的安装
Git的结构
GIT命令行操作
本地库操作
本地库初始化
命令:git init
效果:
设置签名
- 形式:
用户名:XXX
Email 地址:XXX@XXX.com - 作用:区分不同开发人员的身份
- 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
- 命令
- 项目级别/仓库级别:仅在当前本地库范围内有效
- git config user.name XXX
- git config user.email [XXX@XXX.com]
- 信息保存位置:./.git/config 文件
- 系统用户级别:登录当前操作系统的用户范围
- git config --global user.name chenyan
- git config --global inlett@class.com
- 信息保存位置:~/.gitconfig 文件
- **级别优先级**
1. 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
2. 如果只有系统用户级别的签名,就以系统用户级别的签名为准
3. 二者都没有不允许
基本操作
状态查看
git status
查看工作区、暂存区状态
添加
git add [file name]
将工作区的“新建/修改”添加到暂存区
提交
git commit -m "commit message" [file name]
将暂存区的内容提交到本地库
查看历史记录
git log
分支管理
什么是分支
在版本控制过程中,使用多条线同时推进多个任务。
4.2.2. 分支的好处
同时并行推进多个功能开发,提高开发效率
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任 何影响。失败的分支删除重新开始即可。
分支操作
创建分支:git branch [分支名]
查看分支:git branch -v
切换分支:git checkout [分支名]
合并分支:
第一步:切换到接受修改的分支(被合并,增加新内容)上 git checkout [被合并分支名]
第二步:执行 merge 命令 git merge [有新内容分支名]
解决冲突:
冲突的表现
冲突的解决
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add [文件名]
第四步:git commit -m “日志信息”
注意:此时 commit 一定不能带具体文件名
GitHub
账号信息
GitHub 首页就是注册页面:https://github.com/
岳不群的GitHub账号 | Email 地址:yuebuqun@aliyun.com GitHub账号:yuebuqun@aliyun.com |
令狐冲的GitHub账号 | Email 地址:linghuchong@aliyun.com GitHub账号:linghuchong@aliyun.com |
东方不败的GitHub账号 | Email地址:dongfangbubai@aliyun.com GitHub账号:dongfangbubai@aliyun.com |
创建远程库
创建远程库地址别名
git remote -v
查看当前所有远程地址别名
git remote add [别名] [远程地址]
推送
git push [别名] [分支名]
克隆
git origin [远程地址]
效果:
完整的把远程库下载到本地
创建 origin 远程地址别名
初始化本地库