Git的常见操作

news2024/11/17 17:26:11

Git版本控制

开发难题

在实际开发中我们会遇到一些问题,电脑蓝屏,代码丢了,懊悔不?

时间长了,文件找不到了。懊悔不?手欠,之前代码运行好好的,非要去优化下。结果还

不如以前,信心满满,之前代码没保存,懊悔不?怎么解决呢?版本控制就可以解决这些难题了。

版本控制(Version Control System),它功能强大,不仅能备份你的文件,还可以实现很多:

*记录文件的所有历史变化。

*错误恢复到某个历史版本。

*多人协作开发编辑同一个文件。

*实现功能差异版本(分支),如:mysql、mariadb、percona三个分支。

主流的版本控制产品:

名称--模型--并发,模式--历史,模式--变更范围--网络协议--原子,提交性

*CVS---Client-server---Merge---CHangeset---File---Pserver,ssh---No

*SVN---Client-server---3-way-merge,recursive merge,octopus mrege---Changeset and Snapshot---Tree---custom(svn),custom(svn) over ssh,HTTP and SSL(usingWebDAV)---yes

*Git---Distributed---Merge or lock---Snapshot---Tree---custom,custom over ssh,rsync,HTTP/HTTPS,email.bundles---yes

简而言之,各有优缺点,git要配合github远程仓库,可以避免分布式损坏。显然最大的不同在于git是分布式的。svn有权限控制,避免全被clone克隆走,git适合纯代码,svn适合综合性文档管理。

git+svn结合起来,完美。

介绍:

GIT

linus在1991年创建了开源的linux,从此,linux系统不断发展,已经成为最大的服务器系统软件了。linux虽然创建了linux的核心,但linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为linux编写代码,那linux的代码是如何管理的呢?

事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给linux,然后由linus本人通过手工方式合并代码!你也许会想,为什么linux不把linux代码放到版本控制系统里呢?不是有CVS,SVN这些免费的版本的控制系统吗?因为linux坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS,SVN好用,但那是付费的,和linux的开源精神不符。不过,到了2002年,linux系统已经发展了十年了,代码库之大让linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈的不满,于是linux选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权linux社区免费使用这个版本控制系统。

安定团结的大好局面在2005年就被打破了,原因是linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气,开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不止他一个),被BitMover公司发现了(监控工作做的不错!),于是BitMover公司怒了,要收回linux社区的免费使用权。linux可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:linux花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,linux系统的源码已经由Git管理了!牛是怎么定义的呢?吃瓜群众可以体会一下。

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。历史就是这么偶然,如果不是当年BitMover公司威胁linux社区,可能现在我们就没有免费而超级好用的Git了。

组成结构图:

 *工作空间:用来保存项目的元数据和对象数据库的地方。这是Git中最重要的部分,从其他计算机克隆仓库时,拷贝的就是这里的数据。

*本地索引“保存了下次将提交的文件列表信息,一般在Git仓库目录中。有时候也被称作“索引”不过一般说法还是叫暂存区域。”

*本地仓库。之所以说git快,大部分提交都是对本地仓库而言的,不依赖网络,最后一次推送的到远程仓库。

*远程仓库:可以看作是github,他是一个远程仓库,它提供web服务供大家方便下载,查看,提交,存储。

命令速查:

 常用命令:

 *克隆仓库(第一次时) clone克隆

*对工作目录文件新增,修改,删除操作。

*暂存文件,将文件的快照放入暂存区add新增。

*把暂存区的内容提交到本地仓库commit提交。

*把本地仓库的内容提交到远程仓库push推送。

*从远程仓库下载最新内容pull拉取。

码云配置环境:

注册账号

 

每个人必须有自己的账号,先官网注册账号:https://gitee。com

Gitee - 企业级 DevOps 研发效能平台

登录:

 

安装GIT

Git-2.27.0.64-bit,一路next,安装完桌面右键菜单有下面两项,安装完成。选择Git Bash,进入git客户端。

Windows开始菜单。

 

设置字体: 

 

查询git: 

 码云创建仓库:

创建在远程仓库(在码云官网上)

 

 

 创建本地仓库(在你的磁盘中)

创建测试文件,并在本地仓库执行以下命令:

1.git config --global user.name "cgblpx" #配置注册时的用户名

2.git config --global user.email "2250432165@qq.com" #配置注册时的邮箱

3.git config --list #检查配置信息

4.mkdir j2ee

5.cd j2ee

6.git init                                 #初始化

7.在本地仓库中,创建文件1.txt

8.git add 1.txt                           #新增文件到git中处理

9。git commit -m "first commit"          #提交,设置说明信息

10.git remote add origin https://gitee.com/nutony/j2ee.git #远程仓库

11.git push -u origin master #把本地仓库的资源 提交给Git服务器

第一次执行会弹出下面的用户名,密码框,填写码云的账号信息就可以

 刷新页面,如果创建成功,Git上界面发生变化如下样子,这样环境就完成了

 每日任务:


每日早上开始工作前拉取最新团队其他人提交的内容,每日下班前提交可用的内容。

新文件:.

创建项目目录,创建新文件,或者复制已有文件或者复制已有目录:

推送:

把本地文件上传到远程仓库中:

1.$ git add                            #添加当前目录下文件

2.$ git commit -m "j2ee part"      #提交,设置备注。

3.$ git push -u prigin master      #推送到远程仓库

 

拉取/下载

把远程仓库中的内容下载到本地:

$ git pull              #从服务器拉取最新内容

 

 常见错误:

Authentication failed for

 任何路径下输入都可以:

git config --system --unset credential.helper

然后提交操作时,会出现询问框,重新输入用户名提示

failed to push some refs to...

 这是因为readme。md没有存在在本地git中

git pull --rebase origin master #

$ git push -u origin master #推送到远程仓库

-rebase用在合并代码的时候其作用就是在一个随机创建的分支上处理冲突,避免了直接污染原来的分区。

fatal:remote origin already exists

1.先输入$ git remote rm origin(删除关联的origin的远程仓库)

2.在输入重新执行 git push -u origin master

3.如果输入第一步 还是报错的话,error:Could not remove config sectig section 'remote.origin'.我们需要修改gitconfig文件的内容。

4.找到你的github的安装路径,我的是

5.找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

SSL certificate problem: unable to get local issuer certificate

1)--执行命令解决: git config --global http.sslVerify false

2)--重新push: git push -u origin master

邮件是私有的报错:

 需要在码云上,把邮箱改成公开的才行:

 IDEA整合Git

在gitee创建新的仓库

在网页中创建仓库名称

进入workspace

进入workspace,再进入你的项目目录,直接执行clone命令:

git clone https://gitee.com/XXX.git

也许:

需要执行其他的账号密码等命令

打开IDEA的工程中,你会发现直接就能提交或者拉取代码了

IDEA导入下载好的Git项目 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

京东天猫数据查询与分析:2023年厨电细分市场数据分析

随着消费者对生活品质的追求持续提高,我国厨房电器产品的需求也日趋多样化,市场中厨房电器的品类越来越多,我国厨房电器的市场规模也不断扩大。 根据鲸参谋电商数据显示,2023年1月至4月,天猫平台上厨房电器的销量为670…

搭建个人hMailServer 邮件服务实现远程发送邮件

文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 转载自cpolar极点云文章:搭建个人hMailServer 邮件服务实现远程发送邮件 hM…

ChatGPT微调系列一:总述 微调 的基本流程

文章目录 前言一、啥叫微调二、为啥要微调三、不是所有模型都可以微调的四、总述微调的基本流程,以及涉及的主要函数,参数1. 安装2. 准备训练数据3. openai.api_key os.getenv() 进行一个说明4. 通过API 调用模型 常用函数5. 微调模型 常用函数6. OpenA…

Maven 使用详细教程

目录 Maven 介绍 Maven 安装 1、安装JDK 2、下载Maven安装文件 3、配置环境变量 4、检测安装成功 Maven 标准工程结构 Maven 版本要素 Maven仓库 1、本地仓库: 2、中央仓库 3、其他远程仓库 创建Maven工程 使用命令方式创建Maven工程 Eclipse中创建…

智能大棚自动控制系统 实现传统农业精细化管理

新型农业经营主体管理系统是指为了适应农村经济发展需求,提高农业生产组织化、规模化、现代化程度,促进农业产业结构调整和农村产业转型升级,推动农村经济社会持续健康发展而建立的一套管理体系。 该系统主要包括农产品生产、种植、养…

JavaWeb学习路线(8)——登录

一、基本登录功能 (一)需求: 根据账号与密码判别用户是否可以登录 (二)实现步骤 Controller接收传递的JSON格式数据,使用RequestBody实体类进行接收,调用Service具体处理。Service创建登录接…

循环购应运而生,让老百姓敢于消费、有钱消费、愿意消费

​小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 无论…

7 植物背景分离、RGB、HSV特征提取案例(matlab程序)

学习目标:背景分离和RGB等特征提取 1.简述 叶片RGB图像背景精确分离的方法,包括以下图像背景分离方法:S1:选取叶片,所得到的原始图像;S2:采用MATLAB 2016R软件将RGB图像转化为HSV图像,以饱和度0.190.21为界限,将小于界限的图像明度调整为0,并转化为灰度图;S3:用edg…

Redis高并发分布式锁

文章目录 高并发场景秒杀抢购超卖Bug高并发场景秒杀抢购Demo测试结果 JVM级别锁使用nginx对本地服务进行负载均衡 Redis实现分布式锁Redis分布式锁实现DemoRedis分布式锁有关问题 分布式锁性能的提升减少锁的粒度使用异步处理 高并发场景秒杀抢购超卖Bug 在今天的数字化世界中&…

供应商索赔(金税数据)导入并创建凭证(ALV长篇备忘三)

情境/背景:供应商三包索赔款项源起QMS质量系统,联动金税系统完成发票开具,最终在SAP系统中创建完成财务凭证。该流程为手工操作,费时费力且效率低下容易出错。 目标/任务:把QMS供应商三包索赔业务搬上线,同SAP FI顾问梳理功能说明书&#xf…

2023-06-29:redis中什么是热点Key?该如何解决?

2023-06-29:redis中什么是热点Key?该如何解决? 答案2023-06-29: 在Redis中,经常被访问的key被称为热点key。 产生原因和危害 原因 热点key问题产生的原因可以归纳为以下两种情况: 用户对于某些数据的…

安卓弹出popup之XPopup

弹窗自己写的话。虽然很简单。但不够丝滑。如果要优雅点的。又要添加动画。但是。。。如果用上了XPopup,动画别人帮你写。爽不爽?丝滑不丝滑。。? 丝滑第一步。先引入依赖 implementation com.github.li-xiaojun:XPopup:2.9.19如果没有这些…

git版本回退操作

本文 git 相关命令: git reset:回退版本,可指定某一次提交的版本。git reset [--soft | --mixed | --hard] commitId。git revert:撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留…

基于java+swing+mysql图书管理系统V7.0

基于javaswingmysql图书管理系统V7.0 一、系统介绍二、功能展示1.项目骨架2.数据库表3.项目内容4.主界面5.登陆6、借阅管理7、修改读者信息8、图书验收9、新书订购 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java SE项目(awtswing&…

(四)python实战——Sqlite3数据库表的增、删、查、改操作案例

前言 Sqlite3是一个轻量级的数据库,本节内容我们介绍一下如何在python环境中使用Sqlite数据库,完成数据库表的简单增、删、查、改操作。开始本节内容之前,我们需要先安装好python环境,我们使用的是python3的环境。 正文 ①创建…

【Docker】利用Dockerfile制作个人的镜像文件详细讲解

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

如何避免死锁--方法三--scoped_lock

scoped_lock是c17新增的一种模板&#xff0c;也是RAII模式。其是可变参数&#xff0c;可以接受各种互斥类型作为参数模板&#xff0c;可以指定多个互斥量。 前文中我们说到&#xff0c;lock可以锁定多个互斥量&#xff0c;scoped_lock也可以做到。 void thread1() {cout <&…

【网络互联设备】网络杂谈(15)之网桥、路由器、网关、集线器、交换机、中继器的作用与概念

涉及知识点 网桥、路由器、网关、集线器、交换机、中继器的作用与概念&#xff0c;常见的网络互联设备&#xff0c;什么是网桥、路由器、网关、集线器、交换机、中继器。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可去其主页关注下哈&#xff0c;不…

STM32F103基于HAL工程挂载FatFS驱动SD卡实现IAP功能

STM32F103基于HAL工程挂载FatFS驱动SD卡实现IAP功能 &#x1f3ac;基于SD卡IAP升级演示&#xff1a; &#x1f4cd;相关篇《STM32F103基于HAL工程挂载FatFS驱动SD卡》 &#x1f4cc;《使用STM32F103的串口实现IAP程序升级功能》 &#x1f449;&#x1f3fb;ST相关文档&…

并发-JMM-CPU缓存一致性协议MESI

回顾 指令重排 第一V读&#xff0c;都不能指令重排&#xff1b;第二个V写&#xff0c;都不能指令重排 普通读写&#xff0c;写读都会发生指令重排&#xff0c;V写普通读写会发生指令重排&#xff0c;普通读写V读会发生指令重排 CPU缓存一致性协议MESI java—》cpu的执行过程…