git和github以及gitee总结_gitee域名收购价-程序员宅基地

技术标签: github  笔记  git  

Git和GitHub

1.git

1.1 git介绍

​ 1>git是一个免费的,开源的分布式控制系统,可以快速的处理从小到大的各种项目

​ 2>为什么要用git的分布式版本控制?

image-20211021220554231

​ 3>版本控制工具

​ [1]SVN,CVS,VSS等集中式版本控制工具
image-20211022082802746

​ 坏处就是中央服务器的故障问题,如果中央服务器宕机,那么谁都无法协同工作

​ [2]Git等分布式控制工具

image-20211022083701715

​ 好处就是可以解决远程服务器宕机的情况
​ 且每个客户端都保存着整个项目的完整的版本(包括历史记录,更加安全)

​ 4>Git的工作机制

image-20211022090911856

​ 5>GIt和代码托管中心

​ 代码托管中心是基于网络服务器的远程代码仓库,一般我们称为远程库

​ 局域网: GitLab
​ 互联网: GitHub(外网)
​ Gitee码云(国内网站)

1.2 git常用命令

1.2.1 设置用户签名

​ 1>签名的作用:用于区分不同的操作者的作者身份

​ 2>基本语法

​ git config --gobal user.name 用户名
​ got confing --gobal user.email 邮箱

1.2.3 本地库

​ 1> 初始化本地库

​ 命令: git init

​ 步骤: [1]先创建一个空的文件夹目录,作为git本地库的存放路径,然后在该文件中右击打开git
​ [2]输入命令
​ [3]查看git本地库的状态: 会自动创建一个.git的隐藏文件

​ 2>查看本地库的状态

​ 命令: git status
​ 显示:当前的分支
​ 当前已经提交过的东西
​ 本地库什么东西可以提交

​ 步骤: [1]创建一个文件夹
​ [2]添加内容
​ [3]可以看到第三行命令改变,有一个文件可以提交,且该文件是红色的

​ 3>添加暂存区

​ 命令: git add 项目名
​ git rm --cached 项目名 将一个文件从暂存区删除

​ 步骤:[1]执行命令
​ [2]发现文件变绿了
​ [3]再次执行删除命令
​ [4]发现文件又变红了

​ 4>提交本地库

​ 命令: git commit -m “日志信息” 文件名 提交文件到本地库(日志信息)
​ git reflog 显示日志信息
​ git log 显示详细的日志信息

​ 步骤: [1]执行命令后会显示七位的版本码
​ [2]第一行提示会消失,第二行不变,第三行显示没有东西可以提交
​ [3]git reflog 显示日志信息
​ [4]git 详细的日志信息

​ 5>git 修改本地库

​ 已经提交到本地库的项目可以直接的修改

​ 但是修改完后,用命令git status 会发现之前的文件会变成红色的,需要从新添加到暂存区和提交本地库

​ 使用命令git reflog会显示两个版本

1.2.4 版本穿梭

​ 作用:可以让当前的master指针指向特定的历史版本

​ 命令:git reset --hard 版本号

​ 先使用git reflog 查看历史版本说所对应的编号
​ 然后使用git reset --hard 版本号 即可让当前的master指针指向特定的版本

image-20211022202705654

1.3 git的分支

1.3.1 分支的定义

​ 什么是分支?在版本的控制过程中,同时推进多个任务,为每个任务我们就可以创建每个任务的单独的分支.使用分支意味着
​ 程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线的分支运行.对于初学者而言,分支可 以简单理解为副本,一个分支就是一个单独的副本.

​ 分支的好处: [1]同时并行推进多个功能的开发,提高开发效率.
​ [2]各个分支在开发的过程中,如果某一个分支开发失败,不会对其它分支又任何影响,失败的分支重新开始即 可

image-20211022204403156

image-20211022204226319
1.3.2 分支的操作

​ 1>查看当前的分支

​ 命令: git branch -v

​ 2>创建一个分支

​ git branch 分支名

​ 3>切换分支

​ git checkout 分支名

​ 切换完分支后可以修改工程
​ 修改完工程后需要重新提交和保存到本地仓库

​ 4>分支合并

​ git merge 分支名

​ 在3>中使用切换分支并修改文件后,当切换回master分支后,发现master分支中的代码并没有被修改
​ 在master上执行命令git merge 分支名 即可合并分支
​ 这时可以发现查看代码发现代码被成功修改

​ 引: 冲突合并问题
​ 两个人都修改
​ 在master上修改代码, 并把代码添加到本地库和提交
​ 在hot-fix分支上也修改代码,并把代码保存(两次修改的内容不一样),并提交
​ 在master分支上合并hot-fix分支,发现冲突
​ vim 代码 发现有冲突信息,这时可以在vim编辑器内将信息修改为自己想要的样子
​ 提交的时候不能指定文件名,即:git commit -m “merg commit”
​ 切换回其它分支,发现其它的分支中的代码并不会被修改

1.4 Git团队协作

1.4.1 团队内协作

image-20211023091148948

1.4.2 跨团队协作

image-20211023093631747

2.GitHub

2.1创建一个远程仓库

​ 步骤:[1]在git.com首页右上角点击New repository
​ [2]在Repositoyr name中设置自己的远程库的名称
​ [3]选择public,并点击Create repostitory即可
​ [4]在本地的git中绑定远程仓库并起一个别名

​ 创建别名 git remote add 别名 网址https://github.com/OneTimes1/gitSpace.git

​ 查看别名 git remote -v

2.2 对远程库的操作

​ 1>推送本地库到远程库

​ git push 别名 分支

​ 输入命令
​ 打开浏览器挡路登录
​ 刷新 远程库,发现成功提交

​ 2> 同步远程库到本地库

​ git pull 别名 分支 即可将远程仓库的内容拉取到本地库中

​ 3>克隆远程库到本地

​ git clone 远程仓库的网址

​ 克隆好会自动创建一个该网址的别名,可以使用git remote -v 查看别名

​ 先清理自己的凭据管理器
​ 创建一个文件夹用于存放第二个用户的git信息
​ 在该文件夹下打开git,并输入命令,即可克隆

​ 4>团队协作

​ 适用场景:一个新人加入到某个公司后,需要参加该公司的代码的修改,这时就需要加入到该公司的组中,把代码下载到本 地,然后再把代码修改完后提交到远程仓库

​ 步骤:
​ [1]在主用户的git账号中邀请将角色1一同协同
​ [2]角色1需要登录自己的账号同意邀请,即可将主用户的仓库拉到自己的仓库中
​ [3]然后角色1就可以把自己写好的代码推送到远程仓库中
​ [4]主用户就可以看到远程仓库的代码已经发生了改变
​ [5]主用户可以把远程仓库的代码同步到自己的本地仓库

​ 5>跨团队合作

​ 适用场景:不同的团队之间修改代码

​ 步骤:
​ [1]角色2 可以在git主页面搜索账号名称/仓库名称
​ 也可以复制主用户的仓库地址,直接找到https://github.com/OneTimes1/gitSpace.git
​ [2]点击右上角的fork
​ [3]可以在线编辑该代码,编辑完后可以点击Pull Request–>create re–>可以在write中写入自己的描述–>在主角色 中点击pull request -->如果有疑问可以聊天–>Merge pull request即可合并代码–>Confirm merge确定合并
​ [4]也可以克隆到本地库,修改后提交

2.3 SSH免密登录

​ 作用: 在从本地库提交到远程仓库时:
image-20211023174347882

​ 步骤:[1]windows–用户–asus–打开git命令窗口
​ [2]命令:ssh-keygen -t rsa -C 用户的邮箱
​ [3]三次回车
​ [4]cat id_rsa.pub 得到公钥,复制下来
​ [5]在主用户名settings–SSH and GBK keys–New SSH–其名字–粘贴公钥
​ [6]Code–>SSH–>复制连接 [email protected]:OneTimes1/gitSpace.git
​ [7]git pull SSH的链接 分支名(master)
​ [8]修改一下代码
​ [9]提交到本地库
​ [10]git push SSH链接 分支 可以直接提交到远程库,不用在浏览器中登录

3.idea集成git

3.1配置Git忽略文件

​ 1>为什么?与项目无关不参与服务器的部署运行,把他们忽略掉可以屏蔽IDE工具之间的差异

​ 2>如何忽略

​ 步骤:
​ [1]git.ignore文件创建好
​ [2]c盘–>用户–>asus–>git.ignore
​ [3]git.config引用git.ignore,复制路径(要把反斜线修改为正斜线)
​ [4]在idea中配置适用Git程序
​ 创建一个maven工程
​ file–settings–versioncontrol–Git–path配置git的安装目录选中git.exe,提示git的版本信息即可

3.2在idea中适用git

​ 1>在idea中把项目放到暂存区和提交到本地库的方法:
​ [1]在idea的上面点击 VCS(版本控制工具)–Import into Version Control–Create Git Repostiory–ok
​ [2]查看文件发现.git,pom文件变红,表示未被追踪
​ [3]右键pom–git–add 变绿,表示添加到了暂存区
​ [4]写一些代码,弹出一个框,显示是否自动添加到git的暂存区中
​ [5]右键该类,git–add. 项目右键–git–add–显示是否添加忽略的文件,点击取消
​ [6]右键项目–git–commit 写一个提交信息,这个信息就是git commit -m '"" 引号中的信息
​ [7]提交完后项目会变为正常的黑色

​ 2>切换idea集成git版本

​ 在idea左下角点击git , 右键check reversion:黄色的头指针就会指向第二个版本

​ 3>在git中创建分支

​ git–repository–branches–new branch

​ 也可以点击idea的右下角,也可以创建分支,勾选checkout branch会自动切换该分支
​ 也可以直接的有下叫切换分支

​ 4>合并分支

​ 正常合并:

​ 在hot-fix分支上修改代码
​ 提交代码
​ 右下角切换master分支
​ 再点击有下角的分支,点击hot-fix–Merge into Current 即可合并

​ 冲突合并:

​ 在hot-fix上修改,并提交
​ 在master上也修改,并提交
​ 在master上合并hot-fix–merge into current–merge
​ 会显示三个框,两边的是冲突的代码,箭头是添加,x号是删除

3.3在idea中适用github

​ 1>前期准备工作:在idea中登录github
​ 步骤:
​ [1]在idea中,点击settings–version control–github–可以使用账号和密码登录,也可以使用token
​ [2]在github上点击 settings–Deveroper settings–persional access tokens–Generate new token–Note 起个名字
​ --全部打勾–打绿色对号的就是token–一定要把这个口令复制下来–在idea中输入即可

​ 2>把项目发布到远程库中(没有回自动创建)
​ 步骤:
​ [1]VCS–input into version control–shar project on github
​ [2]输入远程库的名字,romote为别名,可以跟库名相同,勾选private就是一个私有的库,不勾选就是公共的库

image-20211024094612869

​ 3>把idea中的代码push到github

​ 在本地修改完代码后需要先添加到本地库

​ 点击蓝色的项目–Define Remote–name 可以随便起,url填SSH的链接

​ 4>pull拉取远程仓库到本地

​ 在远程库中修改代码蓝色的箭头

​ 5>克隆远程仓库到本地

​ git from version control–git–url选择远程库中的代码链接

​ 注:在克隆前需要把平局管理器删一下

image-20211024110412974

image-20211024110809662

4.Gitee码云

4.1简介

​ github的服务器在国外,使用github作为项目托管网站,如果网速不是很好的话,会严重影响用户体验,甚至会出现无法登录 的情况,针对这个问题,大家也可以使用国内的托管网站-码云

​ 码云是开源中国推出的居于git 的代码托管服务中心,网址是https:gitee.com/, 使用方式跟github一样,而且还是一个中文 的网站

4.2在idea中使用码云

​ 1>准备工作

​ 需要在idea的插件中安装Gitee

​ 安装好之后就可以在设置里面看到gitee

​ 然后需要在idea的gitee中登录账号

​ 2>将项目pust到码云远程仓库

image-20211024161914112

image-20211024162044039

​ 3>将仓库pull到本地

​ 在码云上修改完代码后

​ idea中pull时要选择码云的name

​ 4>码云导入github的项目

​ 新建仓库–导入已有仓库–填写github的https的链接–创建即可

​ 如果github上的项目更新了,在gitee的仓库名的后面有个圈,可以点击这个圈,即可同步更新

5.GitLab

5.1GitLab简介

​ gitlab是由gitabinc开发,使用MIT许可证的基于网络的git仓库管理工具,且具有wiki和issue跟踪功能,使用git作为代码管理
​ 工具,并在此基础上搭建起来的web服务

​ gitlab一开始是由ruby语言写的,后来,一部分用go语言重写.

5.1使用GitLab

​ 1>准备工作
​ 步骤:
​ [1] 在虚拟机上安装一个gitlab服务器
​ [2]输入命令vim /etc/sysconfig/network-scrips/ifcfg-ens33 修改其主机地址
​ [3]输入命令vim /etc/hostname 即可修改主机名
​ [4]如果从新配置了,那么就需要重启linux
​ //修改windows中的host文件中的linux的ip地址和主机名的映射,配置完了以后在xshell连接linux时就可以直接输 入lnux的名字,而不用输入ip地址
​ [5]下载gitlab-ce安装包,并放到linux的服务器上

​ 注:如果遇到了新建的主机无法上网的问题 , 可以等一会 , 不用任何的操作vnware为新的虚拟机配置网关需要一定的 时间

​ 2>gotlab的安装

​ 步骤:
​ [1]vim一个脚本文件
​ [2]给脚本添加权限
​ [3]执行脚本
​ [4]在linux上初始化gotlab服务并启动gitlab服务
​ 显示gitlab recinfigured!才是初始化成功
​ [5]在浏览器中输入虚拟机的ip地址,即可访问gitlab
​ 需要在该页面设置自己的密码,并设置一个用户名
​ [6]点击New Project–create blank project–设置自己远程库的名称,公共库–create

​ 注:第一次登录可能遇到的问题:
​ [1]装好gitlab后,在浏览器中输入gitlab的ip地址,需要创建一个密码,这个密码是管理员使用的密码,该账号是root
​ 所以在设置好密码后,就可以使用root,密码的方式登录管理员
​ [2]如果要新建一个账号,那么在申请完以后,需要管理员登录自己的账号来同意申请
​ [3]然后普通账号才能登录

在这里插入图片描述

在这里插入图片描述

​ 3>idea集成gitlab

​ [1]安装gitlab的插件
​ [2]在host文件中设置gitlab服务器的ip和域名映射 192.168.221.132 gitlab-server
​ [3]添加gitlab的服务器地址https://gitlab-server/
​ [4]复制gilab的远程仓库的链接http://gitlab-server/OneTime/git-test.git
​ 这里需要把gitlab.example.com改为linux服务器的主机名gitlab-server
​ [5]push–define --填写gitlab服务器的链接

​ 注:可能遇到的问题就是run按钮变灰
​ 解决办法就是project Structure – 在下面有个文件选项,可以选择一个文件作为输出文件,然后重启idea即可

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_51694696/article/details/121131675

智能推荐

java如何得到浏览器的Ip_java获取浏览器ip-程序员宅基地

文章浏览阅读1.7k次。java得到浏览器ip//获取请求IPString ip = request.getHeader ("x-forwarded-for");if (ip ==null || ip.length() ==0 || "unknown".equalsIgnoreCase (ip)) { ip = request.getHeader ("Proxy-Client-IP");}if (ip ==..._java获取浏览器ip

实景三维可视化管理平台助力提升景区运营管理水平_三维景区平台年度绩效目标-程序员宅基地

文章浏览阅读195次。利用数字孪生技术打造的实景三维可视化管理平台,对各个智能化系统进行集成及历史数据技术的挖掘和分析,提高了数据信息的应用能力和反馈能力,同时也提升了景区的运营管理水平和决策能力。_三维景区平台年度绩效目标

IBM服务器引导盘serverguide 下载_serverguide下载-程序员宅基地

文章浏览阅读2.4w次,点赞4次,收藏25次。ServerGuide 下载 1、ibm_utl_sguide_8.42_anyos_x86-64 http://pan.baidu.com/s/1hq43QSk 2、ibm_utl_sguide_9.22_x86-64 http://pan.baidu.com/s/1mgp2O_serverguide下载

信息学奥赛一本通 1100:金币(信奥1100)_清清将巧克力作为工资,发放给忠诚的奥赛选手。第一天,奥赛选手收到一枚巧克力;之-程序员宅基地

文章浏览阅读801次。信息学奥赛一本通 1100:金币国王将金币作为工资,发放给忠诚的骑士。第1天,骑士收到一枚金币;之后两天(第2天和第3天)里,每天收到两枚金币;之后三天(第4、5、6天)里,每天收到三枚金币;之后四天(第7、8、9、10天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续n天每天收到n枚金币后,骑士会在之后的连续n+1天里,每天收到n+1枚金币(n为任意正整数)。_清清将巧克力作为工资,发放给忠诚的奥赛选手。第一天,奥赛选手收到一枚巧克力;之

Kubeflow 快速入门-程序员宅基地

文章浏览阅读480次。2019独角兽企业重金招聘Python工程师标准>>> ..._kubeflow 入门到精通

2021-09-27-程序员宅基地

文章浏览阅读37次。一些名词解释1.JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。2.环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或

随便推点

oracle取字段部分内容,Oracle数据库取出部分字段的方法-程序员宅基地

文章浏览阅读1.8k次。Oracle数据库取出部分字段的方法发布时间:2020-06-16 13:39:51来源:亿速云阅读:102作者:鸽子如:表所有字段:背景色为要取出的字段unit表:num, bm, dw_name, dw_name_pre, dw_codework表: name, do, check, isdel, writetime, qy_code其中,unit表dw_code == work表qy_cod..._oracle中如果数据量太大如何取别的表的字段

java计算机毕业设计HTML5历史车轮—汴京网站源码+mysql数据库+系统+lw文档+部署-程序员宅基地

文章浏览阅读74次。java计算机毕业设计HTML5历史车轮—汴京网站源码+mysql数据库+系统+lw文档+部署。springcloud基于微服务架构的乐居租房网的设计与实现。ssm+sqlserver中小型连锁超市配送中心库存管理系统。springboot物流车辆规费管理系统的设计与实现。springboot在线问诊系统的设计与实现。ssm基于移动端的校园请假系统的设计与实现。ssm基于java的钢材出入库管理系统。

MySQL约束_怎么让数据库 不是null-程序员宅基地

文章浏览阅读927次,点赞2次,收藏3次。MySQL为了让我们的表结构里面的数据完整性一致性非常强,mysql是给我们提供强约束的,在建表的时候就要把约束建立好。_怎么让数据库 不是null

QT调用C#的Dll_qt调用c#dll-程序员宅基地

文章浏览阅读4.7k次,点赞12次,收藏41次。1:环境:VS2017 QT 5.12.4(1)说明:Qt是不能直接调用C#生成的dll,需要将C#的编写的dll通过CLR编译成lib(2)检查VS环境是否装好:看下图勾选部分是否安装,没有安装需及时安装_qt调用c#dll

java计算机毕业设计口红专卖网站源码+mysql数据库+系统+lw文档+部署-程序员宅基地

文章浏览阅读88次。java计算机毕业设计口红专卖网站源码+mysql数据库+系统+lw文档+部署。ssm基于SSM+VUE技术的小区车辆档案车位管理系统设计与实现。jsp网上花卉销售系统的设计与实现sqlserver。springboot烟草经销平台的设计与实现。jsp基于web的面向公众的食品安全知识系统。springboot智能推荐的卫生健康系统。ssn基于SSM宠物店管理系统的设计与实现。

超详细的Java入门到精通完整学习教程,学Java一定得收藏!_java教程-程序员宅基地

文章浏览阅读1.9k次。从 1995 年第一个版本发布到现在,Java 语言已经在跌宕起伏中走过了 26 年,最新的 Java 版本也已经迭代到 Java 16。java是有一个庞大的生态系统,它的覆盖范围非常广,而且已经连续十几年位居开发语言的榜首,所以java是相对于其他语言来说,非常稳定的。JAVA市场java有非常广泛的应用市场,它的生态系统几乎涵盖了目前市面上所有的软硬件,java几乎是万能的,你能想到的,java基本都能实现(虽然吹的有点大,但不可否认)。web开发:能做大型的互联网网站如,京东,.._java教程

推荐文章

热门文章

相关标签