Git学习
一、版本控制
版本的迭代
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rFLAXRgn-1624784950002)(C:\Users\AW\AppData\Roaming\Typora\typora-user-images\image-20210627135710805.png)]
这就是版本控制工具带给我们的好处
- 跨区域多人协同开发
- 追踪记载多个文件的历史记录
- 组织保护源代码和文档
- 统计工作量
- 提高开发效率,并行开发
- 跟踪记录整个软件的开发过程
- 减轻开发人员的负担,节省时间,降低人为错误
多人开发必须使用,代价较大
1本地版本控制
2集中版本控制SVN
将个人写的代码,提交到公司服务器上,协同开发者从服务器上同步更新或上传自己的修改
3分布式版本控制Git
我们每个电脑上都有自己的版本控制中心,每个人拥有全部代码,我们在本地就能看到所有代码,不会因为服务器损坏或者网络问题,造成不能工作的问题
4Git与SVN的主要区别
- SVN是集中式版本控制系统,Git是分布式版本控制系统
- s首先要从中央副武器得到最新的版本,然后把自己昨晚的活推送到中央服务器,必须联网,对带宽要求较高
- g是每个人的电脑就是一个完整的版本库,工作室不需要联网,我们可以把自己的修改推送给对方
- Git是目前世界上最先进的分布式版本控制系统
二、Git环境配置
下载git对应操作系统的版本,下东西太慢,我们使用淘宝镜像下载
git-for-windows Mirror (taobao.org)
1Git卸载
- 清理环境变量
- 卸载Git软件
安装完毕就可以使用了
2Git基本命令的使用
- Git bash 启动我们的命令行
- cd 改变目录(后面要加上所要去到的目录
- cd … 回到上级目录(cd后面有空格
- pwd 查看当前所在目录
- clear 清屏(Linux的
- ls 列出当前目录中所有文件
- touch 新建一个文件(例如,touch index.js,就会在当前目录下新建一个index.js文件
- rm 删除一个文件
- mkdir 新建一个文件夹
- rm -r 删除一个文件夹
- mv 移动一个文件到一个文件夹下面(mv a b
- reset 跟clear的效果差不多
- history 产看命令历史
- help 帮助
- exit 退出
- #表示注解
3Git配置
所有的配置文件其实都保存在了本地
git config -l 查看自己本地的配置
git config --system --list 查看系统帮我们配置的
$ git config --global --list
user.name=xwk-dev
user.email=2774225452@qq.com
credential.helper=manager-core
git config --global user.name “wk”
git config --global user.email “277”#必须要配置的
三、Git基本理论(核心)
Git本地有三个工作区域:工作目录(WOrking directory)、暂存区(Stage\index)、资源库(repository或git directory)
如果加上远程的git仓库(git directory)就可以分为四个工作区域
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3oy1Stzi-1624784950005)(C:\Users\AW\AppData\Roaming\Typora\typora-user-images\image-20210627150104057.png)]
git的工作流程
- 在工作目录中添加、修改文件 UserMapper.xml
- 将需要进行版本管理的文件暂存区域 git add .
- 将暂存区域的文件提交到git仓库 git commit
因此,git管理文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
四、Git项目搭建
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gQzsftGN-1624784950006)(C:\Users\AW\AppData\Roaming\Typora\typora-user-images\image-20210627150804023.png)]
- git init 初始化项目
- 或者是git clone
五、Git文件操作
文件的状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDCBEDH3-1624784950008)(C:\Users\AW\AppData\Roaming\Typora\typora-user-images\image-20210627152454448.png)]
我们自己手动创建一个文件,然后查看会发现并没有
git add . 将其添加到暂存区里面
git status 查看当前的目录
git commit -m “这里写注释” 提交我们暂存区的东西到本地仓库(-m是提交信息
忽略文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qU7V8cp8-1624784950009)(C:\Users\AW\AppData\Roaming\Typora\typora-user-images\image-20210627154018285.png)]
实际需要忽略的文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SZKdwaIy-1624784950011)(C:\Users\AW\AppData\Roaming\Typora\typora-user-images\image-20210627154137968.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mN20tbMO-1624784950011)(C:\Users\AW\AppData\Roaming\Typora\typora-user-images\image-20210627154151487.png)]
免密码登录
在c盘下的用户界面,见一个.ssh的文件夹,在里面,git bash,然后输入下方代码
ssh-keygen -t rsa
然后就一直按回车,就可以了
六、IDEA中集成Git
- 将我们从远程仓库,下载下来的文件,直接拷贝到我们自己创建的文件下即可
- 注意观察idea中的变化
- 修改文件,使用idea操作git
- 添加到暂存区
- commit提交
- push到远程仓库
- 提交测试
七、Git分支
master主分支
dev开发用
v4.0
v3.0不同版本的分支
#新建一个分支,担任让停留在当前分支
git branch [branch-name]
#新建一个分支,并切换到该分支
git checkout -b [branch]
#合并指定分支到当前分支
$ git merge [branch]
#删除分支
$ git branch -d [branch-name]
#删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
多个分支如果并行执行,就会导致我们代码不冲突,也就是同时存在多个版本
如果同一个文件在合并分支是都被修改了,就会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留谁的代码
master主分支比较稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如要发布,或者说dev分支代码稳定后可以合并到主分支master上来
ch-name]
$ git branch -dr [remote/branch]
多个分支如果并行执行,就会导致我们代码不冲突,也就是同时存在多个版本
如果同一个文件在合并分支是都被修改了,就会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留谁的代码
master主分支比较稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如要发布,或者说dev分支代码稳定后可以合并到主分支master上来