目录
一、Git和SVN对比
- SVN:VN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器
- SVN存在的问题
- 服务器单点故障,将会导致所有人员无法工作
- 而服务器硬盘损坏,这意味着,你可能失去了该项目的所有历史记录,这是毁灭性的
- Git:Git是在2005年,Linux系统的创建者Linus Torvalds,为了帮助全球的开发者,维护Linux系统内核的开发,而开发了自己的开源分布式版本控制工具,分为两种类型的仓库:本地仓库和远程仓库
- Git的优点:每一个客户端都保存了完整的历史记录
- 服务器的故障,都可以通过客户端的记录得以恢复(这个是SVN的痛点)
二、Git的下载和安装
- Git下载官网地址:https://git-scm.com/downloads
- Git安装目录:根据自己需求选择目录,剩下的都默认即可,一路Next直到Finsh即可
- 验证Git是否安装成功:任意文件夹右键查看有出现以下2个选项说明安装成功了
- Git GUI Here:Git提供的图形化操作工具
- Git Bash Here:Git提供的命令行操作工具
- 查看Git安装版本:使用命令行命令查看
git --version
三、TortoiseGit的安装
- TortoiseGit-2.9.0.0-64bit.msi:百度搜索下载
- TortoiseGit-LanguagePack-2.9.0.0-64bit-zh_CN.msi:汉化工具,百度搜索下载
- 安装路径:修改好自己的安装路径后一路Next到Finish
1、TortoiseGit安装
- 语言选择
- bin目录设置
- 用户名和邮箱:这个按自己设置
- 验证TortoiseGit是否安装成功:任意文件夹右键,如果出现以下3个选项说明安装成功
2、TortoiseGit汉化的安装
- 运行TortoiseGit-LanguagePack-2.9.0.0-64bit-zh_CN.msi:下一步 -> 完成
- 汉化设置
- 右键 -> TortoiseGit -> Setting -> Language -> 中文简体
四、Git操作入门
- Git基本工作流程
-
Git常用命令
命令 作用 git init 初始化,创建 git 仓库 git status 查看 git 状态 (文件是否进行了添加、提交操作) git add 文件名 添加,将指定文件添加到暂存区 git commit -m ‘提交信息’ 提交,将暂存区文件提交到历史仓库 git log 查看日志( git 提交的历史日志)
1、Git命令行操作步骤演示
- 1.创建工作目录、初始化本地 git 仓库:进入到工作目录,右键Git Bash Here,输入
git init
,会发现创建了隐藏文件夹.git
- 2.新建一个 test.txt 文件(暂不执行添加操作)
- 3.使用status命令,查看状态:如果使用status命令发现有红色的文件,说明是还没有进行add操作的文件
- 4.使用add命令添加,并查看状态:add只是把文件提交到了暂存区,还未提交到本地仓库
- 5.使用commit命令,提交到本地历史仓库
- 6.使用log命令,查看日志
- 7.修改test.txt文件内容:内容修改后会发现文件前面多了红色的叹号
- 8.添加并提交,查看日志
2、TortoiseGit操作步骤演示
- 1.创建工作目录、初始化本地git仓库
- 2.新建一个 test.txt 文件(暂不执行添加操作)
- 3.选中文件右键,选择TortoiseGit,之后选择添加
- 4.空白处右键,Git提交,提交到本地历史仓库
- 5.空白处右键,TortoiseGit,显示日志,可以产看日志信息
五、版本管理
1、历史版本切换
git reflog
:可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)更精简
git reset --hard 版本唯一索引值
:将代码切换到对应唯一索引值的历史版本
2、分支管理介绍
- 分支概念
- 由每次提交的代码,串成的一条时间线
- 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
- 分支的使用场景
- a)周期较长的模块开发:假设你准备开发一个新功能,但是需要一个月才能完成;第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug;那现在就需要放下手中的新功能,去修复Bug;但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制
- b)尝试性的模块开发:业务人员给我们提出了一个需求,经过我们的思考和分析,该需求应该可以使用技术手段进行实现;但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发
- 分支工作流程
3、创建分支和切换分支
- 创建命令:
git branch 分支名
- 切换命令:
git checkout 分支名
- 查看当前分支下的文件:
ls
4、合并分支和删除分支
- 合并分支:
git merge 分支名
- 删除分支:
git branch -d 分支名
六、远程仓库介绍
- 远程仓库工作流程
- 远程仓库托管平台
- GitHub
- 域名:https://github.com
- 介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站
- 码云
- 域名:https://gitee.com
- 介绍:码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库
- GitHub
- 码云仓库创建
七、远程仓库创建SSH公钥
- 生成SSH公钥步骤
- 设置Git账户
- 生成SSH公钥
- 设置账户公钥
- 公钥测试
- 1.设置Git账户
- git config user.name(查看git账户)
- git config user.email(查看git邮箱)
- git config --global user.name “账户名”(设置全局账户名)
- git config --global user.email “邮箱”(设置全局邮箱)
- cd ~/.ssh(查看是否生成过SSH公钥)
- 2.生成SSH公钥
- 生成命令: ssh-keygen -t rsa -C “邮箱” ( 注意:这里需要敲3次回车)
- 查看命令: cat ~/.ssh/id_rsa.pub
- 3.设置账户公钥
- 4.公钥测试
- 命令: ssh -T git@gitee.com
- 命令: ssh -T git@gitee.com
八、推送到远程仓库
- 步骤:1.为远程仓库的URL(网址),自定义仓库名称;2.推送
- 命令:
- git remote add 远程名称 远程仓库URL
- git push -u 仓库名称 分支名
九、克隆拉取远程仓库
克隆主要针对的情况是:先有远程仓库,本地仓库为空的情况(例如新员工刚入职)
- 1.将远程仓库的代码,克隆到本地仓库:克隆命令:git clone 仓库地址
-
2.创建新文件,添加并提交到本地仓库
-
3.推送至远程仓库
-
4.返回到之前的my_project目录
- 当前还是没有“test3.txt”的文件的
- 项目拉取更新:git pull 远程仓库名 分支名
十、代码冲突
- 产生原因:两个程序员操作同一个文件,其中一个程序员在修改文件后,push到远程仓库,另一个程序员应该先pull将最新的代码更新到本地仓库后,在修改代码,之后push到远程仓库,结果他没有先pull将最新的代码更新到本地仓库,而是直接将自己的代码push到远程仓库,这样就可能会导致代码冲突
- 代码冲突解决方案
- 如果发现代码冲突,先执行pull操作,拉取最新的代码
- 修改冲突行,保存,即可解决冲突
- 重新add冲突文件并commit到本地仓库,重新push到远程