git
1.使用场景
单人开发:可以记录项目代码的所有历史记录,并且能够对版本进控制
历史记录:可以追溯以前所有写过的代码
版本进控制:对软件的功能相关代码进行版本控制
版本一增加了 空间功能 ,聊天功能
版本二 增加了 说说功能(包含 空间功能 ,聊天功能)
多人协作:多个人同参与 以项目,多人之间代码协同
A 开发登陆注册
B 开发用户管理,权限管理
两人如何合并代码?
git:开源世界 分享自己优秀代码
2.git介绍
git 开源的分布式的版本控制工具,解决的就是代码的 版本控制,多人协作问题
svn也是版本控制工具 svn 不是分布式的 (简单,好用,可能不是很安全(代码删除))
发明人: Linus Torvalds 在开发软件起初,倡导开源精神
linux:开发了 开源Linux的操作系统(90)
git: 05 年开发
为什么开发git?就是因为linux系统的代码原来使用其他版本控制工具(起初对Linux社区开发者 免费,05对开发者收费,惹恼Linus Torvalds ,他用了两种时间开发git 第一个版本(c语言))
3.安装
一路下一步
配置用户名,邮箱
git config --global user.name wangongzhuo
git config --global user.email wangongzhuo@163.com
查看用户名密码
$ git config -l
4.概念
工作区(工作空间):人眼睛看到的代码
版本库:git管理当前项目的所有历史记录 (暂存区 分支)
暂存区:缓存 工作空间的代码提交到版本库,必须先提交到暂存区
分支:代码带版本中保存 必须保存在分支中,master 分支是 主干分支
(数据库保存的数据 必须保存在表中)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Q55IQLr-1603978936916)(git-class.assets/image-20201029111646719.png)]
5.仓库
仓库就是项目所在的一个目录
创建仓库
1.创建一个文件夹
java2006_day73_git01
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZUcmpC7-1603978936922)(git-class.assets/image-20201029112441321.png)]
2.进入java2006_day73_git01,右键打开git bash(命令行)
3.初始化
一个项目的初始化只能,初始化一次,生成版本库
$ git init
4.git add
$ git add hellogit.txt #将工作空间的 hellogit.txt加入到暂存区
$ git add . #将当前命令行所在工作空间下所有的文件 提交到暂存区
git commit
git commit -m "master_v1" #将暂存区 文件提交到版本库(对应分支)
-m 提交的描述信息
$ git status
产看当前工作空间文件的状态
红色文件 :未添加暂存区的文件
绿色问题:添加到暂存区,未添加到版本库对应分支文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0o0OWKZ-1603978936941)(git-class.assets/image-20201029114315893.png)]
6.远程仓库
线上服务器仓库:github gitee 自建github
本地仓库和远程仓库交互方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tfaTXTxM-1603978936944)(git-class.assets/image-20201029115952034.png)]
1.创建远程仓库
2.将本地仓库和远程仓库经行关联
重点:在关联仓库之前一定要将所有工作空间的内保持到版本中,并且git stauts
关联远程仓库
git remote add origin https://gitee.com/wangongzhuo/java2006_day73_git01.git
push
保证当前工作空间所用内容保存到仓库的分支
将本地仓库的master 分支推送远程仓库的master分支
git push -u origin master
-u 需要输入用户名密码
注意:push 之前:
1先把工作空间保存到本地仓库
2.要先pull 拉取线上代码,解决冲突,提交到本地
3.在pull 以下(以防有人提交新的代码,有的在解决冲突)
4.没有冲突 push
pull
将远程仓库的内容更新到本地
确保:保证当前工作空间所用内容保存到仓库的分支
git pull origin master #将远程仓库的master分支 更新到本仓master分支 并合并
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2g41ttvY-1603978936950)(git-class.assets/image-20201029144945538.png)]
出现冲突解决
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yTb2DFVo-1603978936951)(git-class.assets/image-20201029144721392.png)]
注意:
pull 之前要将工作空间提交到本地仓库中
pull 之后如果有冲突 Merge conflict in hellogit.txt
要解决冲突,并提交本地仓库
clone
克隆,就是将远程所有的内容放到本地某一目录,并创建工作空间和本地仓库
主要是给新加入项目的小伙伴使用
1.新建java2006_day73_git01_back
2.在java2006_day73_git01_back中右键打开gitbash命令行
$ git clone https://gitee.com/wangongzhuo/java2006_day73_git01.git
7.分支
分支就是git 仓库中存储版本位置,一个分支可以有多个版本组成,每一个都是以节点,在节点中记录了当前分针的代码便信息
分支:可以分为 master(主干分支,默认分支) 稳定版本的代码
可以自己创建dev 开发分支 开发版本的代码
查看分支列表
当前本地工作空间在那个分支,本地仓库的所有分支
$ git branch
* master #*带当前工作空间在那个分支下(工作空间的代码和master分支代码相对应)
创建分支
注意创建支,要保持当前空间干净
就是将当前master分支所有的代码包括历史记录拷贝到 dev分支
$ git branch dev
切换分支
前提条件,要保持当前空间干净
切换分支:就是将当前工作空间的代码切换 dev分支的代码
$ git checkout dev
Switched to branch 'dev'
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KWXic9SL-1603978936952)(git-class.assets/image-20201029161456359.png)]
查看当前分支日志
git log
合并其他分支代码
$ git status
$ git checkout master #切换到master
$ git merge dev 将dev 代码版本合并到当前分支masert
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2nz9vrDX-1603978936953)(git-class.assets/image-20201029163023678.png)]
解决冲突:
1.打开对应文件 修改(删除《《《 ====)修改业务
2.add commit
撤销当前工作空间的修改,将对应分支的代码还原工作空间
git restore hellogit.txt
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DWWaknTH-1603978936955)(git-class.assets/image-20201029164705592.png)]
8.添加忽略文件
1.在idea web工程下添加.gitignore 忽略文件
忽略targer .idea *.class *.iml 不进行版本管理
target/
.idea
*.class
*.iml
2.在工程目录下 进入git bash
初始化工程
git init
3.push gitee
9.小组间协作
添加仓库管理员
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DmC3OgCT-1603978936957)(git-class.assets/image-20201029170243303.png)]
10git Ui使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EgiXWfEB-1603978936959)(git-class.assets/image-20201029173707491.png)]
提交远程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zbCEt9GA-1603978936959)(git-class.assets/image-20201029173756794.png)]
创建分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q3B2jfH7-1603978936960)(git-class.assets/image-20201029174241076.png)]
合并
.idea
*.class
*.iml
2.在工程目录下 进入git bash
初始化工程
git init
3.push gitee
# 9.小组间协作
添加仓库管理员
[外链图片转存中...(img-DmC3OgCT-1603978936957)]
# 10git Ui使用
[外链图片转存中...(img-EgiXWfEB-1603978936959)]
提交远程
[外链图片转存中...(img-zbCEt9GA-1603978936959)]
创建分支
[外链图片转存中...(img-q3B2jfH7-1603978936960)]
合并
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KEw3cOjB-1603978936964)(git-class.assets/image-20201029174452298.png)]