Git概述
Git 是一个免费和开源的 分布式版本控制系统,旨在快速高效地处理从小型项目到大型项目的所有项目。
Git易于学习, 占用空间小,性能快如闪电。它优于 SCM 工具,如 Subversion、CVS、Perforce 和 ClearCase,具有廉价的本地分支、方便的暂存区域和多个工作流等功能。
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
1.服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
commit:提交,将本地文件和版本信息保存到本地仓库
push:推送,将本地仓库文件和版本信息上传到远程仓库
pull:拉取,将远程仓库文件和版本信息下载到本地仓库
代码托管中心(远程库)
- 局域网
- GitLab
- 互联网
- GitHub(外网)
- Gitee码云(国内网站)
Git安装
无脑式安装
Git常用命令
用户名和邮箱必须配置 (GitBush)
命令 | 作用 | 例子 |
---|---|---|
git config --global user.name <用户名> | 设置用户名 | git config --global user.name Caihang |
git config --global user.email <邮箱> | 设置用户邮箱 | git config --global user.email Caihang@qq.com |
git init | 初始化本地库 | git status |
git status | 查看本地库状态 | git status |
git add <文件> | 添加至暂存区 | git add aa.txt |
git rm --cached <文件> | 删除暂存区文件(工作区还是有的) | git rm --cached aa.txt |
git commit -m “日志信息” “文件名” | 提交至本地库 | git commit -m “first commit” “aa.txt” |
git reflog / git log | 查看历史版本信息 /查看版本详细信息 | git reflog / git log |
git reset --hard <版本号> | 穿梭版本号 | git reset --hard 294e668 |
git remote -v | 查看别名 | |
git remote add <别名> <地址链接> | 给库起别名 | git remote add git-demo https://github.com/chword1232/git-demo.git |
git clone <地址> | 克隆地址 | git clone git-demo https://github.com/chword1232/git-demo.git |
Git分支操作
1、分支概述
什么是分支:
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
分支的好处:
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
2、分支操作
命令 | 作用 | 例子 |
---|---|---|
git branch -v | 查看分支 | git branch -v |
git branch <分支名> | 创建分支 | git branch hot-fix |
git checkout <分支名> | 切换分支 | git checkout hot-fix |
git merge <分支名> | 合并分支(把指定分支合并到当前分支上) | git merge hot-fix |
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
Git标签
Git团队机制
1、团队内协作
2、跨团队协作
GitHub
开始:
1、登录账号
2、创建远程仓库
3、连接库
给库起别名
命令 | 作用 | 例子 |
---|---|---|
git remote add <别名> <地址链接> | 给库起别名 | git remote add git-demo https://github.com/chword1232/git-demo.git |
推送本地库到远程库
命令 | 作用 | 例子 |
---|---|---|
git push <别名> <分支> | 给库起别名 | git remote add git-demo https://github.com/chword1232/git-demo.git |
1、切换到master分支
git checkout master
2、推送
git push git-demo master
等待一会儿(如果没有上传上去,可以执行 git config --global http.sslVerify “false” 断开服务连接后重新上传)
拉取远程库到本地库中
命令 | 作用 | 例子 |
---|---|---|
git pull<别名> <分支> | 拉取远程库到本地 | git pull git-demo master |
克隆远程仓库至本地
命令 | 作用 | 例子 |
---|---|---|
git clone <分支> | 克隆远程仓库至本地 | git clone https://github.com/chword1232/git-demo.git |
克隆自动做了三件事:1、拉取代码 2、初始化本地库 3、创建别名
邀请团队
邀请团队外的大神
1、直接通过链接进入其中
2、点击叉子
3、创建Pull requests连接
IDEA集成Git
1、删除idea中不必要的文件
屏蔽idea工具之间上的差异
本来是要自己配置的,springboot帮助我们创建好了。
2、在idea中绑定git
本来是要自己修改的,springboot自动识别了本地git并且自动绑定了
3、初始化
成功后所有文件会变红(未传到暂存区)
4、提交至暂存区,上传到本地库
5、查看版本信息
6、创建与切换分支
7、合并分支
正常合并
冲突合并
(两个分支都进行了修改,就会冲突)
额,现在的idea自动合并了
idea颜色
颜色 | 表示的含义 |
---|---|
红色 | 未添加至暂存区 |
绿色 | 未添加至本地库 |
蓝色 | 修改后未添加至暂存区(可直接提交至本地库) |
IDEA集成GitHub
1、需要去GitHub去生成口令
2、在idea中登录
3、使用
push上传到远程库
pull拉取远程库
注意: push是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push的操作是会被拒绝的。也就是说,要想push成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!
Gitee(码云)
码云是开源中国推出的基于Git的代码托管服务中心,网址是 https:/lgitee.com/,使用方式跟GitHub一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。-
1、创建远程库
2、idea集成Gitee
在idea中下载Gittee插件
设置git安装位置
登录
使用
其他操作与Git一样
本地初始化git项目
远程克隆项目
ideal分支操作
Gitee复制GitHub项目
GitLab
局域网的托管中心
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和 issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。e
GitLab由乌克兰程序员 DmitriyZaporozhets 和ValerySizov开发,它使用Ruby 语言写成。后来,一些部分用Go语言重写。截止.2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被 IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。