一、git简介
GIT是一个开源的分布式版本控制系统,用于敏捷高效的处理任何大小项目的版本管理
- 项目的版本管理
- 团队协同开发
二、 GIT下载及安装
2.1 下载Git
下载地址:https://git-scm.com/
2.2 安装Git
除了安装位置,其他点下一步下一步即可
2.3 检查安装
打开cmd 输入 git --version 查看
三、 GIT架构
四、GIt的基本使用
4.1 创建版本库
- 在工作空间的目录中,右键“git bash here”打开git终端
- 在git终端中输入 git init命令,创建版本库(就是一个.git目录)
4.2 查看版本库状态
git status
4.3 将工作空间的修改添加到暂存区
git add . ##将工作空间中所有添加的文件添加到暂存区
git add a.txt ## 将工作空间中a.txt文件添加到暂存区
注意:如果add文件后想要查看暂存区内容,可以使用git status 命令查看
如果想将暂存区内容回退,可以使用git reset 命令撤销
git status // 先看一下add 中的文件
git reset HEAD // 如果后面什么都不跟的话,就是上一次 add 里面的内容全部撤销
git reset HEAD XXX/XXX/XXX.java // 就是对某个文件进行撤销
4.4 将暂存区内容提交到版本库(仓库)
git commit -m ‘提交说明’
注意:
- 提交本地版本库后,如果想要修改本次提交说明,可以使用命令:
git commit --amend
这时候会进入vim编辑器,修改完成你要的注释后保存即可 - 提交本地版本库后,如果想撤销本次提交,可以使用命令:
git reset --soft HEAD^
这样就成功撤销了commit,如果想要连着add也撤销的话,–soft改为–hard(将删除工作空间的改动代码)
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
4.5 查看版本库中的历史版本
git log --oneline ##每个版本信息只显示一行
git log ## 显示每个版本的详细信息
4.6 设置用户信息
因为暂存区内容提交到本地仓库时,会记录当前版本的用户信息,所以在版本提交前,需要先绑定用户信息
git config --global user.name ‘具体的用户名’
git config --global user.email ‘具体的邮箱地址’
4.7 同步历史版本到工作空间
git log --online ## 查看版本日志,找到版本对应版本号
git checkout 版本号 ## 将版本号对应版本同步到工作空间
五、 远程仓库
远程仓库实现版本库的远程存储,实现协同开发
5.1 远程仓库概述
远程仓库图示 |
---|
5.2 获取远程仓库
- 使用GitLab搭建私服
- 远程仓库提供商
GITHub:https://github.com
Gitee(码云):https://gitee.com
Coding
5.3 创建远程仓库(码云)
- 注册账号
- 创建远程仓库
- 添加开发人员
六、远程仓库操作
6.1 准备工作
- .初始化本地仓库
git init
- 将工作空间添加到暂存区
git add .
- 将暂存区文件提交到本地版本库
git commint -m '首次提交'
- 在gitee中为当前项目创建一个远程仓库
6.2 本地仓库关联远程仓库
- 建立本地仓库与远程仓库的关联,命令中origin为远程仓库别名
git remote add origin hppts://gitee.com/***/***.git # hppts://gitee.com/***/***.git为远程仓库的地址
- 查看远程仓库状态
git remote -v
- 将本地仓库push到远程仓库
git push origin master
注意:push过程中会要求输入gitee的账号密码,该账号密码会保存到windows凭证中,后续登录无需重新输入,如果需要更新账号登录,则需要先在控制面板->用户账户->管理windows凭据
中删除账号密码
6.3其他开发者拉取远程仓库代码到本地
- 方法1:建立本地仓库,并拉取远程仓库代码
- git init
- git pull 远程仓库地址 master (通过远程仓库地址获取代码)
- git pull origin master (通过别名获取远程仓库代码)
- 方法2:直接clone远程仓库
- git clone 远程仓库地址
区别:
- 克隆不需要当前文件夹为仓库
- 克隆时如果远端已有分支,则本地可直接切换分支并进行push,而pull 本地仓库只有一个分支,不同步远程分支
即:
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone
从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull
6.4 解决协同开发冲突
当两个开发者同时修改同一文件的同一位置时,后push的开发者会由于文件冲突而push失败
git pull origin master
#对冲突文件进行编辑
git add .
git commit -m ''
git push orgin master
七、分支管理
同一项目可以有多个分支,供不同开发者开发不同项目功能使用,当功能完善后,将分支合并到项目主干,起到保护项目不受临时开发特性影响
7.1 分支特性
- 创建一个新的版本库,默认创建一个主分支-master分支
- 每个分支都可以进行单独管理(常规分支、保护分支、只读分支)
- 分支可以合并
7.2 命令操作分支
- 查看分支
git branch
- 创建分支
git branch branch-name #使用当前所在分支的版本创建分支名为branch_name 的分支
git checkout 当前分支任意版本号 -b brachName2 #使用当前所在分支的指定版本号创建分支名为branchName2的分支,并切换分支到branchName2
- 切换分支
git checkout branch-name #切换分支到名为branch-name的分支
- 合并分支
#将branch-name合并到当前所在分支
git merge branch-name
注意:合并分支时如果主干从创建分支到合并分支时没有改变,则快速合并,如果主干从创建分支到合并分支时有提交内容或其他改变,则三方合并。及创建分支时版本 和 分支版本 和 创建分支后版本 三方合并!
八、IDEA集成GIT
8.1 IDEA关联GIT
8.2 IDEA中Git使用
8.2.1 创建本地版本库
8.2.2 设置忽略文件
在项目中一些文件是不需要记录到版本库中,可以通过配置忽略文件.gitignore来实现
- 在工作空间的更目录中创建一个名为.gitignore文件
- 在.gitignore 文件中配置忽略过滤条件
.idea
target
*.iml
8.2.3 将工作空间中的文件添加到暂存区
- 选择项目/某个文件右键git->add
- 添加到暂存区的操作可以设置默认添加
8.2.4 将暂存区文件提交到版本库
- 选择项目/文件 右键->git->commit
8.2.5 IDEA中Git分支管理
- 创建新分支
- 切换分支
- 合并分支
- 切换到master分支
- 点击需要合并的分支右面的箭,在展开的菜单中选择合并到当前分支
8.2.6 IDEA中使用Git进行团队协同开发
将本地仓库push到远程仓库
从远程仓库给本地仓库创建分支
push本地分支到远程仓库,给远程仓库同步同名分支
在码云上设置master分支为保护分支
8.2.7 IDEA使用别人的远程仓库
8.2.7 IDEA中Git解决冲突
git pull 时出现版本冲突时,可以选择别人的版本覆盖自己的版本,也可以选择自己版本覆盖别人的版本,或者整合冲突