Git基本操作 和 IDEA集成Git
一、Git基本介绍和工作流程
- 本地历史仓库(repository):存放不同版本的代码
- 工作目录(working tree):代码的存放位置
- 暂存区(index):代码提交到仓库之前的临时存储空间
- 工作目录
添加
到暂存区后暂存区提交
到本地仓库
二、Git操作步骤
- 创建工作目录、初始化本地 git 仓库
创建完成后已有一个隐藏的仓库
- 新建一个 test.txt 文件(暂不执行添加操作)
- 使用 status 命令,查看状态
出现了红色字体,说明未进行添加
- 使用 add 命令添加,并查看状态
完成了添加
- 使用 commit 命令,提交到本地历史仓库
单引号为注释内容,必须填写
- 使用 log 命令,查看日志
出现唯一的索引标识"d41477c34887afc9afaac8230d3c2932e9f923ff"
-
修改 test.txt 文件
-
添加并提交,查看日志
三、Git版本管理
每一次对文件的修改都是提交了一个新版本,而之前的版本都没有被删除掉,已经被git做好管理
-
第三次修改后的版本
-
查看 my_project 的 log 日志
git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)
-
切换到最初的版本 git reset --hard 版本唯一索引值
-
切换到最终的版本
四、分支管理介绍
-
分支概念
- 由每次提交的代码,串成的一条时间线
- 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
-
分支的使用场景
-
周期较长的模块开发
假设你准备开发一个新功能,但是需要一个月才能完成
第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug
那现在就需要放下手中的新功能,去修复Bug
但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制。 -
尝试性的模块开发
业务人员给我们提出了一个需求,经过我们的思考和分析
该需求应该可以使用技术手段进行实现。
但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发。
-
-
分支工作流程
-
Master: 指向提交的代码版本
-
Header: 指向当前所使用的的分支
-
Master、Header为指针
-
五、分支管理操作
- 创建分支切换分支(git branch 分支名)
-
切换分支(git checkout 分支名)
-
新分支添加文件(ls)
不同分支之间的关系是平行的关系,不会相互影响
-
合并分支(git merge 分支名)
-
删除分支(git branch -d 分支名)
-
查看分支列表 (git branch)
六、远程仓库介绍
- 远程仓库工作流程:通过
push请求
和pull请求
实现远程仓库和本地仓库的连接
注意:每次从远程仓库克隆下来的代码修改后需要重新
添加提交
到本地仓库后才能push
上传到远程仓库
- 远程仓库平台介绍
-
GitHub
域名:https://github.com
介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站 各类好玩有趣的开源项目,只有想不到,没有找不到。
-
码云
域名:https://gitee.com
介绍:码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库
七、远程仓库使用步骤
1. 先有本地项目,远程为空
步骤
- 创建本地仓库
- 创建或修改文件,添加(add)文件到暂存区,提交(commit)到本地仓库
- 创建远程仓库
- 推送到远程仓库
- 先在码云创建账号并且新建项目
-
设置Git账户
- git config user.name(查看git账户)
- git config user.email(查看git邮箱)
- git config --global user.name “账户名”(设置全局账户名)
- git config --global user.email “邮箱”(设置全局邮箱)
- cd ~/.ssh(查看是否生成过SSH公钥)
-
生成SSH公钥: ssh-keygen –t rsa –C “邮箱” ( 注意:这里需要敲3次回车)
-
查看SSH公钥: cat ~/.ssh/id-rsa.pub
-
设置账户公钥
-
公钥测试 命令: ssh -T git@gitee.com
- 为远程仓库的URL(网址),自定义仓库名称(git remote add 远程名称 远程仓库URL)
- 将代码推送到远程仓库 (git push -u 仓库名称 分支名)
- 查看码云
2.先有远程仓库,本地为空
步骤
- 将远程仓库的代码,克隆到本地仓库
- 创建新文件,添加并提交到本地仓库
- 推送至远程仓库
- 项目拉取更新
-
将远程仓库的代码,克隆到本地仓库 (git clone 仓库地址)
-
创建新文件,添加并提交到本地仓库
-
推送至远程仓库
-
查看码云
-
拉取到原来的本地仓库中(git pull 远程仓库名 分支名)
-
查看本地文件夹
3.解决代码冲突
- 修改E:\soft\my_project的test.txt并添加提交推送
- 而在E:\soft\my_project\ssm-git中未拉取更新test.txt的情况下也修改了test.txt并添加提交推送,则会出现代码冲突情况
3. 解决方法:先拉取更新,再查看冲突代码 (左尖号到右尖号就是冲突内容)
4. 回到test.txt中解决代码冲突后重新提交
八、在IDEA中集成Git
1.在IDEA中配置Git
(File -> Settings->Version Control -> Git -> 指定git.exe存放目录)
2.创建本地仓库
- VCS->Import into Version Control->Create Git Repository)
-
选择工程所在的目录,这样就创建好本地仓库了
-
点击git后边的对勾,将当前项目代码提交到本地仓库(左边为pull,右边为commit)
-
提交代码
-
提交成功
-
修改代码再次提交
- 查看提交记录
3.版本切换
方式一
控制台Version Control->Log->Reset Current Branch…->Reset
这种切换的特点是会抛弃原来的提交记录
1.查看版本(提交了四次)
- 切换到第三次提交的版本(控制台Version Control->Log->Reset Current Branch…->Reset)
- 版本已经切换,但是之前的版本却丢失
方式二
控制台Version Control->Log->Revert Commit->Merge->处理代码->commit
这种切换的特点是会当成一个新的提交记录,之前的提交记录也都保留
-
Control->Log->Revert Commit->Merge
-
左边为现在版本,中间为最终结果版本,右边为之前版本
-
关闭其中的×号即可解决冲突,然后点击应用
-
出现提交界面,点击提交
-
代码回归到第三版本,且之前的提交记录不会丢失
4.分支管理
- 创建分支(VCS->Git->Branches->New Branch->给分支起名字->ok)
-
成功创建新分支,并跳到新分支
-
切换分支(idea右下角Git->选择要切换的分支->checkout)
-
在day01分支中新添代码并提交
- 回到master中发现没有分支中新添的代码
- 在master也新添新的代码
- 合并分支(VCS->Git->Merge changes->选择要合并的分支->merge)
- 出现了代码冲突
- 点击<<号引入冲突代码
- 成功解决代码冲突问题
- 切换到day01分支的时候还得重新解决一次代码冲突问题
- 删除day01分支(idea右下角->选中要删除的分支->Delete)
5.本地仓库推送到远程仓库
- VCS->Git->Push->点击master Define remote
- 点击push
- push成功
6.远程仓库克隆到本地仓库
- File->Close Project->Checkout from Version Control->Git->指定远程仓库的路径->指定本地存放的路径->clone
2.复制地址
- 填写信息,并点击克隆
- 克隆成功