Git、Github、Gitee、GitLab学习,团队协助/版本控制

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。B站尚硅谷Git学习笔记

一、Git的常用命令

1.git工作机制

工作区和暂存区的文件都可删除,但是提交到本地库则不可删除,有历史记录

2.历史版本

2.1查看历史版本
1)基本语法

git reflog 查看版本信息

git log 查看版本详细信息

2)案例实操 

2.2版本穿梭
1)基本语法

git reset --hard 版本号

2)案例实操

从第3版穿梭至第2版

二、Git分支操作

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独 分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时 候,不会影响主线分支的运行。

1.切换分支

1)基本语法

git checkout 分支名

2)案例实操

2.合并分支 

1)基本语法

git merge 分支名

2)案例实操 在 master 分支上合并 hot-fix 分支

即hot-fix分支覆盖master分支

3.产生冲突及解决

1)产生冲突的原因

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

2)解决冲突
①编辑有冲突的文件,删除特殊符号,决定要使用的内容

特殊符号:

<<<<<<< HEAD

当前分支的代码

=======

合并过来的代码

>>>>>>> hot-fix

②添加到暂存区
③执行提交(注意:此时使用 git commit 命令时不能带文件名

错误示例:(提交了文件名,git不知道是哪个hello.txt)

正确提交:

4.Git底层其实是指针

Git 切换版本,底层其实是移动的 HEAD 指针

master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针。 HEAD 如果指向 master,那么我们现在就在 master 分支上。 HEAD 如果执行 hotfix,那么我们现在就在 hotfix 分支上。

三、GitHub

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

➢ 局域网 ✓ GitLab

➢ 互联网 ✓ GitHub(外网) ✓ Gitee 码云(国内网站)

1.远程仓库操作

1.1创建远程仓库别名
1)基本语法

git remote -v 查看当前所有远程地址别名

git remote add 别名 远程地址

2)案例实操

1.2推送本地分支至远程仓库
1)基本语法

git push 别名 分支

2)案例实操

推送成功! 

1.3拉取远程库到本地库
1)基本语法

git pull 远程库地址别名 远程分支名

2)案例实操

即同步本地库的代码为远程库修改的代码

1.4邀请加入团队

1)选择邀请合作者

2)填入想要合作的人

3 ) 复 制 地 址 并  发 送 给 该 用 户

4)在 atguigulinghuchong 这个账号中的地址栏复制收到邀请的链接,点击接受邀请。

5)成功之后可以在 atguigulinghuchong 这个账号上看到 git-Test 的远程仓库。

1.4克隆远程仓库到本地
1)基本语法

git clone 远程地址

2)案例实操

令狐冲 克隆 岳岳的远程库代码到本地

小结:clone 会做如下操作:

1、拉取代码。

2、初始化本地仓库。

3、创建别名(自动为origin)

2.团队协作

1)团队内协作

令狐冲克隆岳岳的代码到本地库后,

可以修改本地代码-->加入本地暂存区-->提交到本地库->推送远程库(要加入团队)

2)跨团队协助

在东方不败的 GitHub 账号里的地址栏复制收到的链接,然后点击 Fork 将项目叉到自 己的本地仓库。

东方不败在线编辑代码后,接下来点击上方的 Pull 请求,并创建一个新的请求。

如果代码没有问题,可以点击 Merge pull reque 合并代码

3.SSH免密登录

1)进入用户根目录,运行命令生成.ssh 秘钥目录

2)进入.ssh 目录查看文件列表:一个公钥、一个私钥

3)复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys

接下来再往远程仓库 push 东西的时候使用 SSH 连接就不需要登录了。

四、Idea集成Git

1.切换版本

commit代码到本地库后,可以切换版本

在 IDEA 的左下角,点击 Version Control(Git),然后点击 Log 查看版本

右键选择要切换的版本,然后在菜单里点击 Checkout Revision

切换后,头指针指向了第二个版本,代码也变为了第二个版本

2.创建分支和切换分支

选择 Git,在 Repository 里面,点击 Branches 按钮。 

在弹出的 Git Branches 框里,点击 New Branch 按钮。

填写分支名称,创建 hot-fix 分支。checkout branch 表示切换到hot-fix分支

 

也可以在右下角切换master 分支

 3.合并分支(正常)

4.合并冲突并解决冲突

1)合并冲突

如图,如果 master 分支和 hot-fix 分支都修改了代码,在合并分支的时候就会发生 冲突

2)解决冲突

点击 Conflicts 框里的 Merge 按钮,进行手动合并代码。

手动合并完代码以后,点击右下角的 Apply 按钮。 

五、Idea集成GitHub和Gitee

1.GitHub(国外代码托管中心)

1)设置 GitHub 账号

2)分享工程到 GitHub

3)push 推送本地库到远程库

默认是HTTPS,这里我们使用SSH,先复制远程库SSH链接

再自定义远程链接

注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致, push 的操作是会被拒绝的。也就是说,要想 push 成功,一定会先检查下远程库跟本地 代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地 代码更新到最新以后,然后再修改,提交,推送!

4)pull 拉取远程库到本地库

若修改了远程库的代码,即远程库的代码版本比本地库的更新,本地库需pull拉取远程库的代码

注意:pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动 合并,如果自动合并失败,还会涉及到手动解决冲突的问题。

5)clone 克隆远程库到本地

2.Gitee码云(国内代码托管中心)

1)IDEA 安装码云插件

云服务器在国内,用 HTTPS 链接即可,没必要用 SSH 免密链接。

2)IDEA 连接码云

Idea 连接码云和连接 GitHub 几乎一样,首先在 Idea 里面创建一个工程,初始化 git 工 程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述。

将本地代码 push 到码云远程库

2)码云复制 GitHub 项目

码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载。

如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新 

六、GitLab-自建代码托管平台

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/476992.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何打破SAST代码审计工具的局限性?

关键词&#xff1a;白盒测试&#xff1b;代码分析工具&#xff1b;代码扫描工具&#xff1b;静态代码检测工具&#xff1b; 在代码的世界里&#xff0c;安全问题如同潜伏的暗礁&#xff0c;随时可能让航行中的软件项目触礁沉没。SAST代码审计工具如同雷达一样&#xff0c;以其独…

Doris记录

Doris是一个开源的分布式分析型数据库&#xff0c;最初由阿里巴巴开发并开源&#xff0c;目前隶属于Apache基金会。 Doris基于大规模并行处理&#xff08;MPP&#xff09;架构&#xff0c;提供高性能和实时的数据分析能力。它以极速易用的特点被广泛使用&#xff0c;能够应对高…

探索 PostgreSQL 的外部数据包装器和统计函数

PostgreSQL 因其稳定性和可扩展性而广受青睐&#xff0c;为开发人员和数据管理员提供了许多有用的函数。在这些函数中&#xff0c;file_fdw_handler、file_fdw_validator、pg_stat_statements、pg_stat_statements_info 以及 pg_stat_statements_reset 是其中的重要函数&#x…

鸿蒙Harmony应用开发—ArkTS-全局UI方法(时间滑动选择器弹窗)

以24小时的时间区间创建时间滑动选择器&#xff0c;展示在弹窗上。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 本模块功能依赖UI的执行上下文&#xff0c;不可在UI上下文不明确的地方使用&…

java设计模式--模板方法

在开始模板方法的学习之前&#xff0c;先看下面一段话&#xff1a; 模板&#xff0c;是指作图或设计方案的固定格式。模板是将一个事物的结构规律予以固定化、标准化的成果&#xff0c;它体现的是结构形式的标准化。 ----百度百科 通俗来说&#xff0c;模板其实就是把一个事物的…

前端案例:产品模块

文章目录 产品模块效果结构布局分析父级盒子布局图片和段落评价和详情 产品模块效果 结构布局分析 1、大的父级盒子包含全部的内容 2、内容装入 图片&#xff08;img标签&#xff09;&#xff1b;分别三个子盒子装入两段评价以及商品信息。 父级盒子布局 div {width: 300px…

ChatGPT高效完成简历制作[中篇4]-有爱AI实战教程(十一)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、导读&#xff1a; 在使用 ChatGPT 时&#xff0c;当你给的指令越精确&#xff0c;它的回答会越到位&#xff0c;举例来说&#xff0c;假如你要请它帮忙写文案&#xff0c…

6.2 ServiceNow 自动化测试框架 (ATF) 简介

6.2 自动化测试框架 ATF 简介 目录一、自动化测试框架 (ATF) 简介1. Automated Test Framework&#xff08;ATF&#xff09;2. 使用自动化测试框架 (ATF)的好处&#xff1a; 二、 ATF的测试类型1. 功能业务逻辑测试2. 回归测试3. 浏览器兼容性测试4. 服务器端 Jasmine测试 三、…

IBM SPSS Statistics for Mac v27.0.1中文激活版

IBM SPSS Statistics for Mac是一款功能强大的统计分析软件&#xff0c;专为Mac用户设计&#xff0c;用于数据分析和决策支持。该软件拥有直观易用的界面和丰富多样的统计工具&#xff0c;使得用户可以轻松进行数据处理、分析和解释。 软件下载&#xff1a;IBM SPSS Statistics…

JQuery EasyUI DataGrid行添加水印

代码 css: .water-mark::after {content: 有异议;position: absolute;left: 460px;top: 40px;color: rgb(255 0 0);transform: rotate(-25deg);pointer-events: none;z-index: 10;} js: $(#dgData).datagrid({loadMsg: 数据加载中&#xff0c;请稍后……,// fitColumns: true,…

使用工具类简单快速导出复杂的Excel,以及下载Excel 模板

Gitee 地址如下&#xff1a; https://gitee.com/xia-lijun/export-Excel.githttps://gitee.com/xia-lijun/export-Excel.git 一&#xff1a;首先引入pom.xml 依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifact…

Linux:Prometheus+Grafana+睿象云告警平台(3)

在上一章我进行了Prometheus和Grafana的基础搭建以及部署 Linux&#xff1a;Prometheus的源码包安装及操作&#xff08;2&#xff09;-CSDN博客https://blog.csdn.net/w14768855/article/details/136855988?spm1001.2014.3001.5501 1.注册 在监控中必不可少的就是监控告警&am…

基于深度学习的心律异常分类系统设计——算法设计

基于深度学习的心律异常分类系统——算法设计 第一章 研究背景算法流程本文研究内容 第二章 心电信号分类理论基础心电信号产生机理MIT-BIH 心律失常数据库 第三章 心电信号预处理心电信号噪声来源与特点基线漂移工频干扰肌电干扰 心电信号读取与加噪基于小波阈值去噪技术的应用…

Linux下Docker部署中间件(Mysql、Redis、Nginx等)

我的自备文件 文件传输 内网下直接上传很慢 使用scp命令将另一台服务器上的文件传输过来&#xff1b;在已有文件的服务器往没有文件的服务器传输 scp -r 传输的文件夹/文件 root要传输的地址:放置的地址 scp -r tools root172.xx.x.xxx:/data/ 安装二进制文件、脚本及各中间件…

ubuntu - 编译 linphone-sdk

业务需求需要定制sdk&#xff0c;首先声明我们需要的是在Android4.4上跑的sdk&#xff0c;因此本次编译的sdk最低支持为19&#xff08;不同版本需要的环境不一致&#xff09;&#xff0c;编译过程较容易&#xff0c;难点在于环境配置 环境准备 Ubuntu 18.04.6 android-sdk_r24.…

机器学习lgbm时间序列预测实战

完整代码&#xff1a; from sklearn import preprocessing import random from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from sklearn import preprocessing from datetime import datetime import time import mat…

Kafka Consumer 消费消息和 Rebalance 机制

Kafka Consumer Kafka 有消费组的概念&#xff0c;每个消费者只能消费所分配到的分区的消息&#xff0c;每一个分区只能被一个消费组中的一个消费者所消费&#xff0c;所以同一个消费组中消费者的数量如果超过了分区的数量&#xff0c;将会出现有些消费者分配不到消费的分区。消…

探索数据结构:顺序栈与链式栈的原理、实现与应用

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 栈的定义 栈简单来说就是一种只允许在一端进行操作(插入与删除&…

JNDI注入原理及利用IDEA漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

使用Excel创建高效的库存管理表格及优化技巧

库存管理对于企业和组织来说至关重要。Excel作为一款功能强大且广泛使用的电子表格软件&#xff0c;为库存管理提供了灵活性和可定制性。本文将进一步扩展之前的内容&#xff0c;详细介绍如何使用Excel创建高效的库存管理表格&#xff0c;并提供一些优化技巧&#xff0c;帮助您…