一文了解git玩转github(集成idea)

前言

社长,一个爱学习,爱分享的程序猿,始终相信,付出总会有回报的。知识改变命运,学习成就未来。爱拼才会赢!可以关注我,跟我一起学习,一起进步。

1. 版本控制工具

提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,适合团队开发,提高开发效率的一款工具。

1.1为什么要使用版本控制工具?

简单点说,你在开发过程中,会不断发现新需求,不断发现bug,如果不做控制,你的软件将永远不会发布,或今天一个版本,明天又是一个版本。
还有最重要的一点就是并行开发,现在项目开发,一般都是3-5个人开发,项目开发过程中,肯定会存在交集,如果没有版本控制工具,我们就得,改动一个文件,就通知其他的人,我动了某一个文件,你们都增量更新一下,就算能增量更新,通过,人肉眼,一行行的增量,是否能保证准确性,最重要的就是效率太低。这是就需要一款版本控制工具,才能提供多个开发的效率。

1.2版本控制工具分类?

市面上流行的版本控制工具主要有svn(集中式)和git(分布式)

产品 Svn git
核心区别 集中式(有一个服务器) 分布式(每个开发的电脑都有一个本地库)
权限 严格的权限控制,必须是授权的用户才能访问 所有用户都可以访问

2.Git简介

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

2.1 github

我们的代码可以通过github或者码云来托管,也可以自己搭建git服务器。这里我们使用现成的github。
**注意:**因为github是国外的网站,访问有时候会很慢,请耐心等待,或者使用码云。

2.1.1 注册一个github账号

访问github官网 https://github.com/

点击sign up


点击验证

每个人的问题都不一样,相信大家都会

输入用户名,邮箱(最好不要用qq邮箱,会有拦截,还是设置白名单,太麻烦了),密码
注意:邮箱是重点,后面需要进入邮箱激活。我的用户名为cxyxs1314,用cxyxs创建了很多次都提示账号有问题,加了一个1314就可以了。看来还是一生一世管用。


我们选择免费的,下面的Choose Free。免费的基本上满足我们的需求,以前私有的仓库还得收费。刚刚我看了一下详情,发现私有的免费了。

这个就是一个调查问卷。我们不用管,直接下拉到最后

点击跳过

网站跳转到这个页面,我们查看我们刚刚注册的有些,发现来了一封邮件。如果我们一直没有收到邮件,我们可以点击resend email链接,重发邮件(邮件不要用qq邮箱,得设置白名单,重要的事情说三遍)。

点开邮件



就这样,我们就创建好了一个github账号。

2.1.2 git安装

Git官网 https://git-scm.com/


我的电脑是64位的系统,所以选择这个

因为git是在国外的服务器上,所以下载很慢。没有什么好的解决方法,如果有好的处理方法,请在下方留言。谢谢。
找了半天,找了一个淘宝的镜像
https://npm.taobao.org/mirrors/git-for-windows/v2.22.0.windows.1/

点击exe文件


选择保存到我们刚刚存放的目录里面。










耐心等待30s

扫描二维码关注公众号,回复: 8979728 查看本文章

2.1.3查看git是否安装成功。

找一个空白地方,右击鼠标,点击git bash Here,输入git –version,

能看到对应的版本,说明安装成功。

2.1.4 git流程图

  1. 调用git add把代码提交到暂存区
  2. 调用git commit 把代码提交到本地库
  3. 调用git push 把代码提交到github
  4. 把代码提交到github上后,项目的组员,就可以从github上拉取代码,调用git clone/git pull命令。

2.1.5 设置签名有两种方式

单个仓库有效

git config user.name 用户名
git config user.email 邮箱

全局有效

git config --global user.name 用户名
git config –global user.email 邮箱
设置全局后,以后都不用设置用户名和邮箱。
存放在用户目录下有一个隐藏文件,如果找不到,记得设置一下隐藏文件可见。


说明设置签名成功。

2.1.6 创建仓库




2.1.7 组建team

ITfqyd和cxyxs1314这两个用户名,需要组建一个团队,共同开发一个项目,所以,ITfqyd作为管理员,需要邀请cxyxs1314用户名。
ITfqyd创建了一个gittest仓库。


为了方便模拟两个用户,我们通过两个浏览器模拟。
第一个ITfqyd使用谷歌

第二个用户cxyxs1314使用ie
用户cxyxs1314因为第一次登陆,需要输入code码,进入注册的邮箱获取code码


输入code


通过ITfqyd邀请人

使用cxyxs1314登陆,注意使用ie
https://github.com/ITfqyd/gittest/invitations

Accept接收邀请
点击猫猫的头像,到github首页。记得多刷新几次,我是刷新几次后才出来。

到这里,组队成功。

3. idea集成git

因为idea是主流,eclipse使用人群也变少。所以本文只介绍idea集成git。
注意,因为idea版本界面设计一致在变化,但是,万变不离其中。我们这里以IntelliJ IDEA 2018.3.3 x64为案例进行学习。

3.1 创建一个springboot项目




输入maven的xy坐标。点击next

勾选lombok和web

项目名跟仓库名称建议保持一致。

3.2 增加测试代码

package com.cxyxs.gittest.test;

/**
 * Description:转发请注明来源  程序猿学社 - https://ithub.blog.csdn.net/
 * Author: 程序猿学社
 * Date:  2020/2/5 22:18
 * Modified By:
 */
public class Test {
    public static void main(String[] args) {
        String str="程序猿学社说武汉加油!";
        System.out.println(str);
    }
}

3.3 在idea配置git相关信息

配置github




输入用户名和密码


配置git

创建本地库


我们可以看出有git,cvs,svn这些版本工具。我们选择git

点击ok,界面,没有任何的提示,说明创建git仓库成功。
也有可能会提示,该目录在git下了,点击yes就行。

提交代码到github


照着这个图,我们走起。

加入暂存区
有时候因为网络问题,可能会有报错,别慌,老铁。再试几次。
木有反应,说明加入暂存区成功。


点击commit
耐心等待20s左右


注意,idea界面有变化



输入仓库名称和仓库的url
找到我的仓库
https://github.com/ITfqyd/gittest



耐心等待30s


网络不好,可能会有失败情况,请多尝试
再次访问社长的gittest仓库,发现代码已经提交到github。

IDEA打开多项目窗口

后面会模拟两个用户同时开发,因社长只有一台电脑,所以idea多窗口模拟

克隆或者拉取代码

社长已经把代码提交到github的gittest仓库,还记得之前社长创建了一个用户名为cxyxs1314的账号(称他为隔壁老王)。
模拟正式场景:有一个team,有两个人,社长(组长)和隔壁老王(组员)。社长已经把隔壁老王邀请到我的团队。并且,社长已经提交了项目的初始化代码。隔壁老王,作为组员,是不是得从github上把我的代码拉取下来。
为了方便模拟,我会开两个idea的窗口,模拟两个人开发的过程。以下为了不混淆做一些说明,ITfqyd(社长) cxyxs1314(隔壁老王)


创建一个空的项目。

注意:因为社长跑到这一步的时候,发现没有配置idea多项目窗口,所以点击finish后,idea没有提示,让我选择this window或者new window。
如果在克隆这一步之前,就已经配置过idea兼容多窗口,就忽略这一步。



到这里一台电脑模拟两个用户开发就ok了。

隔壁老王的开发界面,注意是gittest1这里的文件名,就是为了区别开来

选择目录


注意这里的还只是到工作空间。我们是新增项目,所以需要增加一个项目名


正在克隆代码中,休息20s

我们可以看到代码已经拉取成功

增加一句话,测试一下隔壁老王提交代码是否成功
这里就不过多的阐述提交代码到github的过程了。
再回顾一下,git add->git commit->git push

社长开始拉取隔壁小王提交的代码





解决代码冲突

为了模拟冲突。社长在以前的代码上,又增加了一句话

中间省略社长提交代码的步骤。就三步很简单。git add->git commit->git push
这时候,隔壁老王也开始干活了,而隔壁老王因为对git不怎么熟悉。不更新代码,不更新代码就开始编程。

而这时候的隔壁老王跑了git add->git commit两步,已经到本地库了。心情十分的愉悦,终于弄完了,可以下班喝茶去咯。
但是,一执行git push,凉凉。提交被拒绝。咋回事咯,小老弟。还能不能愉快的玩耍。顿时,隔壁老王,一下子心情变得糟糕起来咯。

来社长与大家来,论道论道,关于隔壁老王的这个问题,咋解决?
这是因为,更新代码不及时导致的,现在都是团队作战,有时候代码肯定不可避免有交集,建议大家一个小时,更新一次代码,别项目版本已经到了10.0版本,你还在1.0版本,中间差了9个版本,那不好意思,你只能解决这9个版本的问题了。


点击pull,拉取代码。


隔壁老王下班后,苦逼的一个人在解决冲突问题。而养成一小时一更新的社长,已经下班打卡喝茶去咯。

41029df8f588fc2084e5328c5edd3a0101fb8c57就是一个版本编号不用管。
老王解决冲突后的代码如下。

再背一下社长的提交三步曲 add commit push。

验证github代码,也没有问题。解决冲突就玩了。隔壁老王,终于松了一口气。从这以后,隔壁老王,就养成了,勤拉最新代码的习惯。

4 github搭建网站

新建仓库(仓库是用户名.github.com)

我的仓库名 ITfqyd.github.com


记得勾选initalize this repository with

个人博客搭建


创建文件index.html


通过我刚刚设置的网址访问https://itfqyd.github.io/
注意反应有点慢,我等了快2分钟才成功,也可以清空浏览器的缓存后,再访问

通过自定义的博客网址访问之前的仓库,设置主题





输入https://itfqyd.github.io/gittest/
注意:itfqyd.github.io是我自定义的博客网址, gittest是社长上传到github的一个仓库。

看到这里,没有图片,看起来很不舒服。走起,开始设置图片
修改README.md文件


发现
语法不兼容
。各个厂家的MD语法都不同。给大家看看我最初的效果

关于如何在github上实现这种吊炸天的效果,社长还在研究中,希望知道的老铁,在下方评论


整理不易,觉得不错的朋友,可以点个赞。动动你的小手。


公众号**“程序猿学社”**,每周实时更新
分享java各个技术点面试题,jvm源码学习,算法和结构,各个技术点的学习文章。

发布了269 篇原创文章 · 获赞 440 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/qq_16855077/article/details/104196617