目录
(一)如何删除GitHub仓库的文件(GitHub只能删除仓库,不能删除仓库中的文件)如何删除GitHub仓库的文件(GitHub只能删除仓库,不能删除仓库中的文件))
(二)清空GitHub仓库的文件后,想将本地的文件推送到GitHub仓库(要先在本地拉取远程仓库文件后才能推送)
一、介绍
SVN: 是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以要首先从中央服务器下载最新的版本,然后开发,开发完后需要把自己开发的代码提交到中央服务器。
Git: 是一种分布式版本控制系统,分为本地仓库和远程仓库,每个客户端都;保存了完整的历史记录。
二、安装下载
可在CSDN或哔哩哔哩等网站搜索安装下载教程。操作较简单,博主已经按照成功。
三、Git操作入门
(一)Git基本工作流程
1.了解本地仓库
①工作目录:代码的存放位置
②暂存区:代码提交到仓库之前的临时存储空间
③本地历史仓库:存放不同版本的代码

2.Git常用命令
| 命令 | 作用 |
|---|---|
| git init | 初始化,创建git仓库 |
| git status | 查看git状态(文件是否进行了添加、提交操作) |
| git add + 文件名 | 添加,将指定文件添加到暂存区 |
| git commit -m '备注' | 提交,将暂存区文件提交到历史仓库 |
| git log | 查看日志(git提交的历史日志) |
3.Git常用命令小试牛刀
①创建一个新的空文件夹 ,打开文件夹 --右键 --点击"Open Git Bash here" (如图1)--**执行"git init"**命令创建本地仓库(如图2)
图1
图2
②创建一个test.txt文件 ,执行"git status"命令查看test.txt文件的状态(如图3)
图3
③执行"git add + 文件名"命令 将test.txt文件存入暂存区,执行"git status"命令再次查看test.txt文件的状态(如图4)
图4
④执行"git commit -m '备注'"命令 将test.txt文件存入本地历史仓库,执行"git status"命令再次查看test.txt文件的状态(如图5)
图5
⑤执行"git log"命令 查看日志,修改test..txt文件的内容 ,执行添加、提交、查看状态和查看日志的操作 (如图6),"git log"命令的结果中"commit"后面接着的一串黄色符号是该文件的唯一标识号
图6
四、Git版本管理
(一)历史版本切换
1.命令
| 命令 | 作用 |
|---|---|
| git reflog | 可以查看所有分支的所有操作记录(包括已经被删除的commit记录的操作) |
| git reset --hard 唯一索引值 | 回退到索引值所代表的文件内容 |
2.小试牛刀
①执行"git reflog"命令 ,查看修改的次数和版本的唯一索引值(如图7)(红框内的是唯一标识的后7位)
图7
②执行"git reset --hard 唯一索引值"命令,回退到第一个版本(如图8),可以查看test.txt文件的内容来确定是否回退到第一个版本。
图8
(二)分支管理
1.介绍
①分支:由每次提交的代码,串成的一条时间线
②使用场景 :周期较长的模块开发;尝试性的模块开发
③意义 :可以把工作从开发主线上分离开,以免影响开发主线
2.分支工作流程
①指针:Master--代表主线;Head--代表当前所使用的分支(路线选择就改变Head指针所指线路)
②命令
| 命令 | 作用 |
|---|---|
| git branch | 查看分支 |
| git branch 分支名 | 创建分支 |
| git checkout 分支名 | 切换分支 |
| ls | 列出该分支下的所有文件 |
| git --help | 列出所有git的命令 |
| git branch | 查看分支列表 |
| git merge 分支名 | 合并分支命令 |
| git branch -d 分支名 | 删除分支 |
3.小试牛刀
①执行"git branch 分支名"命令 ,建立一个新的分支,执行"git checkout 分支名"命令,切换到新建的分支(如图9)
②查看是否正确切换分支的两种方法(如图9)
图9
③在文件夹下新建一个新文件test2.txt ,执行添加、提交、和查看状态的操作 ,执行"ls"命令 查看该分支下的文件(如图10),可以发现在div这个分支下,"ls"命令结果有两个文件(包含了主线的文件)
图10
③执行"git checkout 分支名"命令 切换回主线"Master"下,执行"ls"命令 查看该分支下的文件(如图11),可以发现只有一个主线内的文件,并且文件夹内只显示一个主线内的文件
图11
④在"Master"分支下执行"git merge 分支名"命令 将"div"这个分支合并到"Master"分支下(如图12),执行"ls"命令 查看"Master"分支下的文件,可以发现有两个文件,已经完成合并
图12
⑤执行"git branch -d 分支名"命令 删除多余的"div"分支,执行"git branch"命令 查看现在存在的分支(如图13),可以发现只剩下"Master"一个分支了
图13
五、远程仓库
(一)工作流程

(二)远程仓库平台介绍
1.GitHub
介绍:GitHub是全球最大的开源项目托管平台
2.码云
介绍:码云是全国最大的开源项目托管平台
(三)安装和配置第一个远程仓库(GitHub)
可查看下面链接的博文安装配置
(四)推送到远程仓库(先有本地仓库)
1.命令
| 命令 | 作用 |
|---|---|
| git remote add 远程名称 远程仓库URL | 为远程仓库的URL自定义仓库名称 |
| git push -u 仓库名称 分支名 | 推送 |
2.小试牛刀
①执行"git remote add 远程名称 远程仓库URL"命令 自定义仓库名称,执行"git push -u 仓库名称 分支名"命令 推送本地文件或文件夹到远程仓库,执行"git log"命令可以查看推送的文件(如图14)
黄色框内容: 第一次推送需要**先完成身份验证,**Git 会弹出一个浏览器窗口或直接在终端提示你输入
绿色框内容: 因为网络问题,推送失败。在身份验证的那个浏览器中成功打开GitHub就能解决
**红色框内容:**成功推送的信息
图14
(五)克隆拉取(先有远程仓库)
1.命令
| 命令 | 作用 |
|---|---|
| git clone 仓库地址 | 将远程仓库的代码克隆到本地仓库 |
| git pull 远程仓库名 分支名 | 项目拉取更新 |
2.小试牛刀
①新建一个新文件夹 ,打开文件夹 --右键 --点击"Open Git Bash here",执行"git clone 仓库地址"命令将远程仓库的代码克隆到本地仓库(如图15)
图15
②打开克隆的文件夹, 创建新文件夹/文件 ,右键 --点击"Open Git Bash here"添加、提交 到本地仓库,推送到远程仓库(如图16)
黄色框内容: Git 无法找到或访问该远程仓库。我们每一次推送都要执行"git remote add 远程名称 远程仓库URL"命令为远程仓库的URL自定义仓库名称。
**红色框内容:**推送成功。
图16
③打开原本的文件夹 ,执行"git pull 远程仓库名 分支名"命令拉取更新项目(如图17)
图17
(六)代码冲突
1.冲突情况
即多人拉取同一份代码后修改,第一个人修改并推送到远程仓库后,第二个人仍使用之前的拉取的代码修改并推送,此时第一个人和第二个人推送的文件会发生冲突。(远程仓库会阻止第二个人提交,并报错)

2.解决方法
①执行"git pull 远程仓库名 分支名"命令拉取最新的文件
②执行"cat 文件名"命令 查看冲突部分(<<<<<<<和>>>>>>>中间的内容是冲突部分)(如图17),修改、保存,即可解决冲突
图17
③再次添加、提交到本地仓库,推送到远程仓库
六、IDEA集成Git
(一)创建本地仓库,提交代码
1.idea集成Git
用idea打开一个项目 ,点击"file"--"settings"--左侧栏"Version Control"--"Git" ,此时idea会自动检测到git.exe,点击"Text" 后下方出现版本号即git能正常运行,点击"OK"

2.创建本地仓库
点击File那一栏的"VCS"--"Create Git Repository" ,选择要管理的项目,点击"OK" ,此时顶栏左侧会出现"master"这个工具

3.提交代码
点击"master"--"commit" ,在黄色框1中选择要提交的代码文件,黄色框2中写上代码备注,点击"commit"

完成提交后会出现下图的信息

点击左下角最后的图标即可查看该项目的日志

(二)实现版本切换

当我们有多个版本时,想从1.4版本回退到1.2版本,有两种方法
1.会丢失1.2版本以上的所有版本
①在1.2版本上右键点击"Reset Current Branch to Here..." ,在弹出的对话框中直接点击"Reset"

②此时会发现,1.4版本中修改的代码还是存在,并且1.2版本以上的版本已经丢失,无法再次回退到1.3或1.4版本,想要还原会1.2版本的代码需要按下图步骤实现

2.不会丢失任何版本
①在1.2版本上右键点击"Revert Commit",会弹出对话框说代码冲突(如下图)
- 接受您的更改:2号黄色框,保留当前分支的代码,丢弃被还原提交的更改。
- 接受他们的更改:3号黄色,框接受被还原提交的原始代码,覆盖当前分支的代码。
- 合并 (M)...:4号黄色框,手动合并代码(推荐)。或者双击1号黄色框

②推荐点击"Merge..." ,之后会弹出当前版本、想要还原到的版本和服务器上原本版本的代码对比,按下图点击❌号 修改代码冲突,最后**点击"Apply"**应用

③点击"Apply"应用后,会弹出提交版本的对话框,可以修改一些备注后直接点击"Commit"提交此次还原的版本

④此时我们可以看到,所有的版本都在,代码都自动还原了并多了一个还原之后的版本

(三)在IDEA中操作远程仓库
1.推送项目文件到远程仓库
①**点击"Git"--"Push"**后会弹出对话框

②填写远程仓库名和URL地址,点击"OK"

③选择好文件后**点击"Push"**即可

2.克隆远程仓库的项目代码到IDEA
①关闭IDEA中的项目,点击右上角的"Get from VCS"

②在弹出的对话框中点击"Repository URL" ,填写右侧的远程仓库URL信息和Directory目录地址,点击"Clone"即可

七、GitHub使用的小知识点
(一)如何删除GitHub仓库的文件(GitHub只能删除仓库,不能删除仓库中的文件)
(二)清空GitHub仓库的文件后,想将本地的文件推送到GitHub仓库(要先在本地拉取远程仓库文件后才能推送)
1.所遇到的问题
①按(一)清空GitHub仓库的文件后,如果直接推送 本地文件到远程仓库,会报代码冲突错误,并且如果想修改冲突的代码,此时远程仓库又没文件,无法解决冲突代码
②如果在idea中先拉取再推送 ,第一步的拉取就无法进行,因为远程仓库此时没有文件,idea无法识别有效文件拉取
2.解决方法
①按(一)清空GitHub仓库的文件后,在想推送的项目文件夹下 ,右键 点击**"Open Git Bash here"**
②在弹出的对话框中,执行新建本地仓库<git init> ,拉取远程仓库的内容<git pull 远程仓库名 分支名>
③成功拉取后,就可以在对话框或者idea中推送项目了