git/github/gitee/gitlab+idea

本教程来源于b站尚硅谷视频:5h打通Git全套教程IDEA版(涵盖GitHub\Gitee码云\GitLab)
教程介绍:
在这里插入图片描述

1. git

1.1 介绍

免费开源的分布式版本控制系统。

  • 集中式代表svn(subversion),代码存在中央服务器中,谁用谁就down下来一个版本,缺点是单点故障,服务器没了,push,commit,pull都不行。
  • 分布式代表git,联网从远程库中下载下来全部的版本,如果远程库没了,由于本地端点有全部的版本,可以在本地进行commit和pull,等服务器好了再push就行。

git和svn的详细区别可以参考Git和SVN的区别(以后别再问我了)
版本控制就是编程界的后悔药,程序改崩了可以回滚到特定版本。
其实个人自己建文件夹也能做到版本控制,使用版本控制工具最重要的其实是团队协作开发时代码的合并,不至于你开发你的,我开发我的,导致代码混乱。

git本地的代码存储:
在这里插入图片描述
代码托管中心(远程库):

  • 局域网:gitlab
  • 互联网:github,gitee

1.2 安装

去官网https://git-scm.com/下载。
在这里插入图片描述
找个非中文目录一路next安装就行了。
安完后右键git bash here,看看版本号:
在这里插入图片描述
命令也可以在cmd里输。git bash框是用linux命令操作的。

1.3 命令

命令单词可以用tab补全。

命令代码作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “”“日志信息” 文件名添加到本地库(“日志信息”是描述信息,英文双引号包裹)
git reflog查看简单历史纪录:带版本号,当前版本指针,描述信息
git log查看详细历史纪录:除了简单信息还有作者,邮箱,时间
git reset --hard 版本号版本穿梭

1.4 分支

在这里插入图片描述
在这里插入图片描述

分支命令作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名xx把xx分支合并到当前分支上
合并时的冲突:
在这里插入图片描述
在这里插入图片描述
vim手动打开冲突文件:
在这里插入图片描述
将前中后的标识符号去掉,再保留要的代码:在这里插入图片描述
保存文件后再add+commit:
在这里插入图片描述

1.5 团队协作

1.5.1 团队内协作

在这里插入图片描述
第一步:1号人在本地上创建了本地仓库,然后编了代码,push到远程仓库
第二步:2号人从远程库上clone下来全部代码,搞了个新的本地库(git的分布式属性)
第三步:2号人开发新代码后add+commit+merge+push到远程库,更新了远程库
第四步:1号人隔一段时间后从远程库pull下来代码更新本地库
当然不能谁都可以push代码,有权限控制。

1.5.2 团队外协作

在这里插入图片描述
第一步:不同团队不同远程库,所以2号团队的人想得到代码,要先fork1号团队远程库里代码到2号的远程库
第二步:2号团队的人clone下来
第三步:2号团队的人修改后push上去自己的远程库
第四步:1号团队通过命令,审核2号团队的代码后合并到自己远程库里
第五步:1号团队通过pull使用代码

1.6 git+idea

2. github

github-分布式代码托管服务平台

2.1 操作

github网站:https://github.com/,这网站很卡,正常还是用gitee吧,除非团队要用。
登录后创建远程仓库:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.1 远程仓库命令

命令代码作用
git remote -v查看当前所有远程仓库地址别名
git remote add 别名 远程仓库地址给远程仓库地址起别名
git push 别名/远程仓库地址 分支名push某分支内容到远程仓库该分支
git clone 远程仓库地址把远程仓库内容clone到本地
git pull 别名 分支名拉取远程仓库某分支最新内容来合并本地分支
在这里插入图片描述
为了保证效果,任何操作请在相应的文件夹内右键git bash here
clone操作=拉取代码+初始化本地仓库+创建别名

2.1.2 团队内协作方式

当然不是谁都能给远程库push东西的,能push的人要由远程库创建者
指定其加入该团队。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置完后远程库创建者会得到一个该成员的邀请函链接:
在这里插入图片描述
把邀请函通过qq微信什么的给该成员,该成员打开那个链接,接受即可:
在这里插入图片描述
这样就可以推送代码了,无权限推送的话会报403错误:
在这里插入图片描述
公开库pull,clone是不需要权限的,push需要。

2.1.3 团队外协作方式

团队外的人需要先fork到自己的远程库:
在这里插入图片描述
自己的远程库里就有一个代码库了,并且有来自哪里的说明:
在这里插入图片描述
团队外人员修改代码后要发给团队内创建者一个pull request请求:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在团队内创建者的账号上就能看到一个pull request请求:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.4 ssh免密登录

前面我们用的远程库链接都是https链接:
在这里插入图片描述
还有一个ssh链接:
在这里插入图片描述
为什么要搞这个,是因为之前每次push的操作都要登陆,很麻烦,用这个就不用登陆了,所以叫ssh免密登录。
但这个ssh链接不能直接用,要搞一个ssh的密钥:
在这里插入图片描述
在bash窗口输入: ssh-keygen -t rsa -C xxxx@xxxx.com
这个邮箱是库主的邮箱。
输入后一路回车,得到结果:
在这里插入图片描述
发现目录中多了个.ssh的文件夹,里面有公钥和私钥:
在这里插入图片描述
在这里插入图片描述
然后让库主把公钥添加到他的设置里就行了:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加成功:
在这里插入图片描述
在这里插入图片描述

2.2 github+idea

2.2.1 配置git忽略文件

有些文件不需要pushpull等操作,比如用idea自带的.idea的idea设置文件等等,就要配置忽略文件。
忽略文件名叫xxx.ignore,推荐叫git.ignore,推荐放在家目录下:
在这里插入图片描述
git.ignore里建议配置忽略这些文件:

*.class

*.log

*.ctxt

.mtj.tmp/

*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml

然后在.gitconfig里配置上刚刚的git.ignore文件:
在这里插入图片描述

[user]
	name = coderhaoSYS
	email = 1198234865@qq.com
[core]
	excludesfile = C:/Users/user-lihao/git.ignore

2.2.2 idea里设置git程序路径

File-settings-version control-git
在这里插入图片描述

2.2.3 idea里初始化git

在这里插入图片描述
在这里插入图片描述
然后路径里就多了个.git文件,初始化好了:
在这里插入图片描述

2.2.4 add,commit,push,pull,clone,reset等操作在idea中的使用

add:

2.2.3节操作后会发现文件是红的,说明没add到暂存区:
在这里插入图片描述
add到暂存区后就会变绿:
在这里插入图片描述
在这里插入图片描述
还有些文件是草绿色,说明是之前配置的忽略的文件,不会添加到暂存区。

  • commit:
    在这里插入图片描述
    在这里插入图片描述
    提交后的文件就会由绿变正常黑色:
    在这里插入图片描述
reset切换版本:

在这里插入图片描述
切换头指针:
在这里插入图片描述
看到黄色指针变了,代码也变了:
在这里插入图片描述

分支创建和使用:

在这里插入图片描述
在这里插入图片描述
head指到master的第一次提交,然后新建一个dev分支,然后改改代码,commit两次,,然后head切到dev first-commit可以看到:
在这里插入图片描述
从左边的分支中看得出来,2次的dev是从master的第一次commit上改的.看到master和dev分支都有一个绿色指针指向最新commit,黄色指针只有一个,代表当前代码所在分支和版本。

merge分支:

合并到哪个分支,就要在哪个分支上操作,比如要把dev合并到master上,就要head指针指到master上。
在这里插入图片描述
合并时代码冲突会跳出冲突框,点击merge手动合并:
在这里插入图片描述
在这里插入图片描述
合并后观察log,路线很形象:
在这里插入图片描述

github账号关联idea:

由于push/clone/pull操作涉及到远程代码托管中心,所以需要github账号。
file-settings-version control-github:有账号密码和token两种登陆方式
在这里插入图片描述
token怎么来:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
口令只显示一次,请妥善保存!:
在这里插入图片描述
settings里没有github就去安一个:
在这里插入图片描述

push:

正常要先创建远程库,然后本地push上去,但idea功能强大,push的时候就能自动创建远程库,所以可以直接push操作,不创远程库。
而且push之前要先pull,确保最新,然后push。
在这里插入图片描述
在这里插入图片描述
以后再修改的代码就可以直接push:
在这里插入图片描述
push默认https,网络可能不畅通,建议用ssh:
在这里插入图片描述
push设为ssh:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pull:

在这里插入图片描述
在这里插入图片描述

clone

在这里插入图片描述
在这里插入图片描述

3. gitee(码云)

3.1 介绍

国内的代码托管平台
网址:https://gitee.com/
在这里插入图片描述
注册个账号就行了。
使用:
在这里插入图片描述
操作和github类似。

3.2 gitee+idea

3.2.1 idea安装gitee插件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2 初次push

在这里插入图片描述
或者提前创建远程库,然后配好https/ssh,再push也行。

3.2.3 push

在这里插入图片描述
配个gitee的https/ssh链接:
在这里插入图片描述

注:整个代码上传流程(不含合并代码)

add–commit directory–push

3.2.4 pull

在这里插入图片描述
注意选择gitee的相关库地址:
在这里插入图片描述

3.2.4 clone

和github类似,不演示

3.2.5 github项目迁移到gitee

gitee新建仓库页面下面:
在这里插入图片描述
在这里插入图片描述
github的原项目更新了,如果想更新gitee的相同项目,可以点刷新按钮:
在这里插入图片描述

4. gitlab

4.1 gitlab介绍

使用MIT许可证的基于网络的git仓库管理工具。
官网:https://about.gitlab.com/
安装说明:https://about.gitlab.com/install/
安装需要一台linux服务器环境:
在这里插入图片描述

4.2 gitlab搭建

4.2.1 安装

这里参考centos7的安装说明,安装gitlab-ce社区版,企业版gitlab-ee要收费。
官网安装说明:https://about.gitlab.com/install/#centos-7
官网安装文档:https://docs.gitlab.com/ee/install/

4.2.2 初始化

初始化命令:

gitlab-ctl reconfigure

4.2.3 启动gitlab服务

启动命令:

gitlab-ctl start

4.2.4 访问gitlab服务器

直接访问ip地址即可,端口号默认80,就是gitlab的端口号。
一开始要改密码,改的是root账号的密码:
在这里插入图片描述
登陆后进首页:
在这里插入图片描述
操作和gitee还有github差不多,这里不赘述了。

4.3 gitlab+idea

4.3.1 安装gitlab插件,配置gitlab设置

在这里插入图片描述
在这里插入图片描述

4.3.2 操作

push,pull,clone,commit等操作和之前github,gitee一样,不再说了。
这个url使用ip就行了,下图中是因为windows的host中配过域名。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值