Java学习Day19------git版本控制

版本控制

1、概述

代码备份  //比如: 大学毕业,提交 毕业论文, 多个版本进行迭代的过程
版本控制  //比如: 因为需要修改了之前的代码,但是出现更多的bug,导致了项目不能正常运行, 需要回退到之前的版本
协同工作  //比如: 两个人同时进行同一个项目,代码的修改可能会出现不同步问题。
责任追溯  //比如: 可以查看谁最后修改了代码或者说某段时间,某个人改了某段代码。 《谁动了我的代码》 

2、两个仓库
  (1)本地仓库:存在于每一个开发者的电脑当中
  (2)远程仓库:存在于版本控制的服务器当中(需要通过网络进行上传和下载)

git

1、安装git(win10):https://blog.csdn.net/dsh789/article/details/109787371
2、查看git版本信息
  安装成功之后,可以在电脑的桌面上面,右键选择Git Bash Here使用命令行打开,输入git --version
3、安装Tortoise(乌龟)图形化界面:https://blog.csdn.net/dsh789/article/details/110057004
4、本地仓库工作流程
  (1)在工作空间添加或者修改代码
  (2)使用git添加命令,将新添加或者修改的代码存储到暂存区
  (3)使用git的提交命令将代码提交到本地仓库
本地仓库工作流程
5、常用命令

命令作用
git init初始化,创建 git 仓库
git status查看 git 状态 (文件是否进行了添加、提交操作)
git add 文件名添加,将指定文件添加到暂存区
git commit -m ‘提交信息’提交,将暂存区文件提交到历史仓库
git log查看日志( git 提交的历史日志)

  练习:

1. 创建工作目录, 初始化本地 git 仓库
2. 新建一个 test.txt 文件(先不要执行添加的操作)
3. 使用 status 命令, 查看状态
4. 使用 add 命令添加, 并且查看状态
5. 使用 commit 命令, 提交到本地历史仓库
6. 使用 log 命令, 查看日志信息
7. 修改 test.txt 文件
8. 使用  status 命令,查看当前的状态
9. 使用 add 命令添加, 并且查看状态
10.使用 commit 命令, 提交到本地历史仓库
11.使用 log 命令,查看日志信息

6、采用Tortoise图形化操作
Tortoise图形化操作
7、git版本切换
  (1)步骤
    a) 查看历史版本信息(获取唯一的简短索引)
      命令:git reflog
    b) 使用命令切换到之前的版本
      命令:git reset --hard 版本的唯一索引值
  (2)使用Tortoise切换
使用Tortoise切换

分支管理

1、分支:就是一条并行的时间线。
2、优点:不会影响到主分支的代码开发问题。我们可以采用分支进行周期性长,尝试性的功能模块开发。
3、工作流程
分支工作流程
4、相关指令

指令语法演示案例指令描述
git branch 分支名称git branch dev创建分支
git checkout 分支名称git checkout dev切换分支
lsls查看文件
git merge 分支名称git merge dev合并分支(指令当中的分支合并到正在使用分支,一般合并主分支)
git branch -d 分支名称git branch -d dev删除分支
git branchgit branch查看分支列表

远程仓库

1、工作流程
远程仓库工作流程
2、工作场景举例
(1)如果远程仓库刚开始创建的过程当中,目前远程仓库的内容是空,如果其中第一个程序员他做的事情是什么?
  概述: “需要把自己写的代码,上传到远程仓库当中”
  操作: 添加代码(add)到暂存区 —> 提交代码(commit)到本地仓库 —> 推送代码(push)到远程仓库
(2)如果远程仓库当中,已经存在内容, 但是操作的人 还是同一个人, 只是修改了原始的代码,请问他的操作流程是什么?
  概述: “直接将自己的代码,上传到远程仓库当中”
  操作: 添加代码(add)到暂存区 —> 提交代码(commit)到本地仓库 —> 推送代码(push)到远程仓库
(3)如果远程仓库当中,已经存在内容,现在又来了一个新同事,请问 他应该怎么操作呢?
  概述: “直接从远程仓库当中,克隆一份代码”
  操作: 创建一个本地仓库(init) —> 克隆远程仓库(clone)的代码到本地仓库。
(4)如果新同事对代码进行了修改,准备提交到远程仓库当中, 请问 他应该怎么操作?
  概述: “直接将自己的代码,上传到远程仓库当中”
  操作: 添加代码(add)到暂存区 —> 提交代码(commit)到本地仓库 —> 推送代码(push)到远程仓库
(5)新同事已经上传了自己修改后的代码到远程仓库当中, 现在我想要使用远程仓库,应该怎么操作? 每天的工作情况
  概述: “需要先从远程仓库当中,拉取代码,自己修改之后,再次准备上传到远程仓库”
  操作: 拉取远程仓库(pull)更新的代码 —> 自己修改代码 —> 添加代码(add)到暂存区 —> 提交代码(commit)到本地仓库 —> 推送代码(push)到远程仓库

3、拉取操作(pull) 和 克隆操作(clone) 的区别
  拉取操作(pull) 是拉取的最新的数据, 主要是更新之后的数据。
  克隆操作(clone)是复制了一份代码,中间的版本迭代的过程,也存在其中。

生成公钥(码云和GitHub配置公钥)

1、步骤
  (1)在本地git客户端设置全局账户(账户和邮箱是在安装 git 的过程当中,自己设置的,也可以设置其他用户为全局账户),设置步骤看下面。
  (2)查看git账户信息
    a) 查看账户 git config user.name
    b) 查看邮箱 git config user.email
  (3)设置全局账户
    a) 设置账户 git config --global user.name “账户的名称”
    b) 设置邮箱 git config --global user.email “邮箱”
  (4)查看之前是否生成过公钥
    cd ~/.ssh
  (5)生成公钥
    ssh-keygen -t rsa -C “邮箱” (一共要敲3次回车)
  (6)查看公钥
    cat ~/.ssh/id_rsa.pub
  (7)在码云上设置公钥
    a) 码云设置ssh公钥
在这里插入图片描述
在这里插入图片描述
    b) GitHub设置ssh公钥
在这里插入图片描述
在这里插入图片描述
  (8)公钥测试
    码云:ssh -T git@gitee.com
    GitHub:ssh -T git@github.com
    注意:如果显示successfully表示设置成功了
在这里插入图片描述

git远程仓库操作指令

1、给仓库设置一个名称:
  语法: git remote add 远程仓库的名称 远程仓库的URL
  说明: 远程仓库的名称: 我们自己定义,你说他叫什么他就是什么。 远程仓库的URL来自于码云上面的地址
2、推送操作:
  语法: git push -u 仓库名称 分支名称
  说明: 远程仓库的名称: 根据上面的语法去指定的, 分支的名称: 看你当前使用的是哪一个分支(如果是主分支: master)
3、克隆操作:
  语法: git clone 仓库地址
  说明: 之前没有内容,全部获取
4、拉取操作:
  语法: git pull 远程仓库名称 分支名称
  说明: 之前有内容,只是获取更新的

代码冲突

1、产生原因
  在推送push的时候, 没有进行拉取 pull 的操作。并且在push之前对代码文件进行了修改。
2、如何解决冲突
  先将代码, 拉取 pull 下来, 修改冲突部分的代码, 修改完毕之后,在进行推送 push。
  注意:其中, 冲突部分的代码, 出现在 连个符号的中间
  <<<<<<<<<<<<<<<<<<<<<
  …可能出现冲突的代码…
  >>>>>>>>>>>>>>>>>>>>>

IDEA集成git

1、IDEA配置git本地仓库
  (1)配置git.exe路径
在这里插入图片描述
  (2)设置本地仓库:选择的是项目文件夹也就是你的工作空间作为本地仓库使用
在这里插入图片描述
  (3)出现下面的两个图标就对了
在这里插入图片描述
2、IDEA提交代码
在这里插入图片描述
3、版本切换
  (1)方式一
在这里插入图片描述
  (2)方式二
在这里插入图片描述
4、分支管理
  (1)创建分支
在这里插入图片描述
  (2)切换分支
在这里插入图片描述
  (3)合并分支
在这里插入图片描述
    合并过程中可能出现冲突的情况,这个时候需要手动去解决冲突之后再合并
在这里插入图片描述
  (4)删除分支
在这里插入图片描述
5、IDEA操作远程仓库
  (1)推送到远程仓库
在这里插入图片描述
  (2)克隆远程仓库代码到本地
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值