如何在IDEA上操作GitHub?在这里总结了
学习时,接触到git这个版本控制软件,经常使用到它来管理代码。Git是现在比较流行的版本控制系统,IDEA也是平时开发中常用的ide,以下介绍idea如何连接git、怎样把项目提交到github等操作方法。
一、 Git的相关介绍
简介:介绍git的相关信息。
1.1 Git的信息
git 是一个 开源 的 分布式 版本控制系统。它与 CVS 等集中式版本控制系统不同,git采用了分布式版本库的方式,不需要服务器端的软件就可以进行版本控制。
GitHub是一个开源代码库,可以理解为一个保存源代码的地方。
1.2 Git的特性
从 一般开发者 的角度来看,git的功能特性:
- 可以从服务器上克隆 完整 的Git仓库。
- 可以在 自己 的电脑上根据不同的开发目的,创建分支、修改代码。
- 可以在单机上 自己 创建的分支上提交代码,合并分支。
- 可以把 服务器上最新 的代码拉到 自己的主分支 上合并。
- 修改生成补丁后,可以把补丁推送给主开发者。
- 如果主开发者发现两个 一般开发者 之间 有冲突( 一般开发者之间可以合作解决的冲突),就会要求他们先把冲突解决,再由其中一个人提交;如果 主开发者 可以自己解决,或者 没有冲突 ,就通过一般开发者提交的补丁。
- 一般开发者解决冲突的方法是用 pull命令 解决。
从 主开发者 的角度来看,git的功能特性:
- 可以 查看 (通过邮件或其它方式)一般开发者的提交状态。
- 可以打上补丁,解决冲突(可以直接解决,也可以让开发者之间解决后再提交)。
- 如果开源项目,需要决定哪些补丁有用,哪些没用。
- 向服务器 提交结果 ,再通知所有开发者。
1.3 Git的优缺点
优点:
- 适合 分布式 开发,强调个体。
- 速度快、比较灵活。
- 任意两个 一般开发者之间 可以很容易解决冲突。
- 服务器 的压力和数据量都不会很大。
- 离线 工作。
缺点:
- 学习周期 比较长。
- 中文 资料少。
- 代码的 保密性差 ,一旦开发者把整个库克隆下来,就可以完全公开所有代码和版本的信息。
1.4 Git与集中式的区别
以与SVN的对比为例, Git 与 SVN (集中式)的区别:
- git 把内容按 元数据 的方式存储,而 svn 是按 文件 的方式存储。
- git 没有全局的版本号,而 svn 有。
- git的 内容完整性 比较好(采用 SHA-1哈希算法 存储)。可以确保代码内容的完整性,能确保在遇到磁盘或网络问题时,降低对版本库的破坏。
- 两者的分支不同,对 svn 来说,分支只是版本库的另一个目录。
二、 IDEA连接Git
简介:介绍idea如何连接git,在idea中使用git进行版本控制。
2.1 连接前的准备
2.1.1 安装Git客户端
在idea使用git进行版本控制之前,需要本机有 git客户端 ,如果没有,可按以下操作安装。
在git官网下载电脑系统相应客户端 :Git官网
打开官网后,根据自己电脑系统下载对应的客户端,也可以选择其它的版本下载
下载完成后,再验证下是否安装成功。
2.1.2 Git客户端验证
打开终端 (快捷键: Win + r ,输入 cmd )
在终端输入命令 git --version 检验
git --version
git安装成功。
2.2 IDEA关联GIt
打开idea,再打开idea的设置界面 File --> Settings (或 快捷键:ctrl + alt + s )
找到 Git ,如下图所示,默认 自动 与关联git 的
如果 没有关联 ,则找到git安装目录下的 git.exe 文件(如果自动关联了,就跳过这一步)
点击 Test 测试,查看是否关联成功,如下图则是 关联成功 (可以看到下载的版本号)
三、 IDEA推送项目
3.1 IDEA提交项目(方法一)
3.1.1 推送项目的过程
打开 设置 ,点击 Version Control --> GitHub
点击右侧的 + 号
如果是 第一次连接 或者 删掉了之前的信息 的话,会弹出提示,填写GitHub的 账号 和 密码
添加成功后,会显示 用户账号 ,点击 Apply --> OK
创建本地仓库,点击 VCS --> Import into Version Control --> Create Git Repository
选择仓库的地址,一般选择当前项目做为仓库目录,点击 ok ( 将本地地址与git关联后,本地仓库的地址默认就是项目的地址)
项目的文件名会显示 红色 ,创建本地git仓库成功
打开项目相应位置的文件夹,可以看到 .git 文件 (相对于其他文件夹,该文件夹有些暗)
点击需要提交的文件,再点击 VCS --> Commit ,或者按 快捷键 ctrl + k ,
打开后可以看到 需要提交的内容 (通常是只选择需要提交的代码,即 src文件 ,其他文件不勾选),以及 内容的注释 (一般都写上内容的描述,方便后续的管理,可以知道提交的原因) ,再点击 Commit
将本地项目提交到github上,点击 VCS --> Git --> Remotes
弹出以下窗口,如果 有 想提交到的远程仓库地址 ,直接点击相应的地址,如果 没有 ,则在该窗口右上角点击的 + 号,添加远程仓库的地址
在 URL 这一栏添加远程仓库的地址
查找远程仓库地址 按这个操作, 打开 浏览器 , 选择指定的远程仓库(想提交到的远程仓库),进入后如下图,点击 Clone or download
选择 SSH 访问链接(或者 HTTPS ,推荐选择ssh),复制远程仓库地址
接着,在idea点击 VCS --> Git --> Push (或者按快捷键: ctrl + shift + k )
点击后,可以看到上面几步操作中,选择提交的项目和这次提交的描述,点击 Push
提交完成,右下角弹出提示 Push successful
如果代码有修改,则会出现颜色的提示
3.1.2 检验是否提交成功
从 浏览器 打开 GitHub ,检查是否成功提交到 远程仓库 ,如下图,提交成功(通常都是提交 src 文件就可以的了)
3.2 IDEA提交项目(方法二)
简介:这个推送方法,是在推送项目的 同时 ,也在Github上面创建一个远程仓库,不用事先创建远程仓库(用哪个方法,根据自己的情况选择)。
3.2.1 推送过程的演示
(忘了这个操作方法是不是要下载下面这个插件,如果你的idea 没有显示 这个选项,就 下载 这个插件,或者按上面 2.3 的方法操作)
打开 idea ,点击 VCS --> Import into Version Control --> Share Project on GitHub
弹出以下窗口,如下图所示,填入内容,点击 Share
完成后idea右下角出现以下提示
3.2.2 检验是否提交成功
从 浏览器 打开 GitHub ,查看远程仓库是否创建成功,点击远程仓库进入检查项目是否提交成功
四、 IDEA克隆远程仓库
在idea选择项目的界面(如果已经打开项目了,点击 File --> Close Project ,关闭项目,退回到选择项目的界面),点击 Check out from Version Control
点击 Git
点击后如下图所示,填上 远程仓库地址 、修改 存放的路径 (根据自己情况修改),完成后点击 Test 测试一下
如果不熟悉 复制远程仓库地址 等操作的话,可以参考这篇文章:码云Gitee的使用教程,Github的操作和Gitee是相似的。
测试完成后,如下所示
点击 Clone ,克隆完成后会弹出以下提示
点击 Yes 后,要把项目导入到idea,基本都是直接点击Next 就可以了。
导入操作步骤可以参考这篇文章:IDEA导入打开克隆的仓库
另外就是,这个克隆操作是根据远程仓库的 URL 克隆的,会把远程仓库的所有内容都克隆下来。
五、 IDEA拉取远程仓库代码到本地并自动合并
5.1 Pull作用的描述
这里与第四部分是不一样的,区别在于:
- Clone (克隆)是 本地没有 这个项目,从远程仓库克隆一个完整的项目到本地。
- Pull 是本地已经有一个项目了,比如这个项目叫做test ,这个test也在远程仓库上面,其他开发者对test进行修改并上传到远程仓库后,我们从远程仓库上把其他开发者修改的部分Pull到本地仓库,将test项目自动合并。
5.2 Pull的操作过程
点击上方菜单栏 VCS --> Git --> Pull
或者 右键项目名,点击 Git --> Repository --> Pull
点击后弹出以下窗口,根据自己的情况选择就可以了
六、 连接过程中遇到的问题
6.1 提交项目时报错 提示Push rejected:xxx:push to origin/master was rejected
解决方法: 点击idea底部的 Terminal 打开终端
输入以下命令,告诉系统允许合并与历史不符的内容
git pull origin master --allow-unrelated-histories
如下图所示
命令执行完后,重新push项目就可以了。
也可以用下面这个命令强推
git push -u origin master -f
至此,介绍结束。
文章来源: https://blog.csdn.net/qq_45069279 ,作者:苜苜的烂笔头,版权归原作者所有,如需转载,请联系作者。
原文链接:https://blog.csdn.net/qq_45069279/article/details/106241564
- 点赞
- 收藏
- 关注作者
评论(0)