实例详解Git的常见操作

发布时间 - 2022-03-25 00:00:00    点击率:

本篇文章给大家带来了关于git的相关知识,其中主要介绍了一些常见的操作,包括了设置字体、创建远程仓库、创建本地仓库等等,希望对大家有帮助。

推荐学习:《Git教程》

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 merge 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结合起来,完美。

介绍

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

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

安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:Linus花了两周时间自己用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/

登录

安装GIT

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

Windows开始菜单:

设置字体

查询git

码云创建仓库

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


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

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

git config --global user.name "cgblpx" #配置注册时的用户名
git config --global user.email "2250432165@qq.com"  #配置注册时的邮箱
git config --list #检查配置信息
mkdir j2ee
cd j2ee
git init								#初始化
在本地仓库中,创建文件1.txt
git add 1.txt						#新增文件到git中处理
git commit -m "first commit"			#提交,设置说明信息
git remote add origin https://gitee.com/nutony/j2ee.git	#远程仓库
git push -u origin master #把本地仓库的资源 提交给Git服务器

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

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

每日任务

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

新文件

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

推送

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

$ git add .								#添加当前目录下文件
$ git commit -m "j2ee part"				#提交,设置备注
$ git push -u origin 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、如果输入第1步 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容

4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

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

SSL certificate problem: unable to get local issuer certificate

	--执行命令解决: git config --global http.sslVerify false
	--重新push: git push -u origin master

邮箱是私有的报错


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

IDEA整合Git

在Gitee创建新的仓库

在网页中创建仓库名称:cgb2109-3

进入workspace

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

git clone https://gitee.com/cgblpx/cgb2109-3.git
也许:
需用执行其他的账号密码等命令

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

推荐学习:《Git教程》


# git  # php  # ruby  # bash  # mysql  # 分布式  # jquery  # for  # Error  # 并发  # 对象  # github  # windows  # svn  # idea  # 数据库  # mariadb  # http  # https  # ssl  # linux  # ssh  # gitee  # 控制系统  # 这是  # 开源  # 世界各地  # 已有  # 报错  # 好用  # 官网  # 就可以  # 弟兄们 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么调用外部API_Laravel Http Client客户端使用  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  三星网站视频制作教程下载,三星w23网页如何全屏?  如何在宝塔面板中创建新站点?  Laravel API资源类怎么用_Laravel API Resource数据转换  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何快速打造个性化非模板自助建站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  Android Socket接口实现即时通讯实例代码  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  C#如何调用原生C++ COM对象详解  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  什么是javascript作用域_全局和局部作用域有什么区别?  如何在万网ECS上快速搭建专属网站?  javascript日期怎么处理_如何格式化输出  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  焦点电影公司作品,电影焦点结局是什么?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  详解Android——蓝牙技术 带你实现终端间数据传输  如何在宝塔面板中修改默认建站目录?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  高端网站建设与定制开发一站式解决方案 中企动力  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Laravel集合Collection怎么用_Laravel集合常用函数详解  浅谈redis在项目中的应用  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在阿里云虚拟服务器快速搭建网站?  怎么用AI帮你设计一套个性化的手机App图标?  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何在Windows服务器上快速搭建网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  大型企业网站制作流程,做网站需要注册公司吗?