【Linux】git操作

news/2024/12/12 12:14:28/

git_0">git操作

gitee为例

新建仓库并拉取到本地

gitee上新建仓库后

image-20241204143944084

我们点击这个橙色的克隆、下载

选择HTTPS的链接进行复制

我们创建一个test目录并cd进去

image-20241204144301762

我们就可以把远端仓库拉取下来:

git clone后面带上刚才复制的链接

现在test目录下就有我们拉取下来的仓库了

image-20241204144446196

image-20241204144559520

但是我们感觉好像并没有看到仓库,ls -al才能看到

image-20241204144718596

,git就是新建的仓库,叫做隐藏的本地仓库。

在网站上其实我们也看不到这个.git

image-20241204144838341

image-20241204144905525

tree一下发现.git里面包含的东西其实还挺多的。

这里面是我们历史上所有的修改记录。

我们不同版本的修改数据都会保存在git特定的目录下,一般是objects

image-20241204145520675

其实我们的git在记录时,不需要记录不变的。

git只会提交变化的部分。

假如我们从100行里删了1行代码,git只需要记录删除了第99行这样的字符串。

如果未来我们想恢复,把“删除”改成“添加”这一行。


加进本地仓库

我们在拉取下来的目录merge_class_delete里创建一个文件test.c并在其中编写代码:

image-20241204150021589

但是这个test.c是并没有在本地仓库管理起来的

image-20241204150325109

git add .可以把当前目录下所有陌生的文件添加到本地仓库。

也可以git add test.c

git add test *

但这样还不算是完全添加到仓库里了

image-20241204151734265

(我们要厘清当前工作区域.git的概念)

当我们add之后其实只是添加到了一个临时的暂存区里面:

image-20241204161421262

那么这个暂存区的作用是什么呢?

这个暂存区允许我们多次添加,一次一起提交git仓库。

image-20241204161719238

多次add,一次提交。

第二个理由是暂存区可以恢复,后悔提交。

怎么看现在是什么状态呢?

git status

image-20241204162016283

提交到本地仓库

git commit -m "……"

image-20241204162218153

-m后面跟的是日志信息,或者说是提交日志信息。

这个信息建议不能乱写,要写本次提交做的核心工作。

因为git log就能看提交记录

image-20241204162457531

这里的commit后面的是提交id。表示一种唯一值,相当于我们前面说的v1 v2 v3

将远端仓库与本地同步

git push

会要求我们输入gitee的用户名和密码

然后就可以看到

image-20241204163108285

gitee上面就能看到我们刚push的代码了,就完成了同步。

如果我们不小心删掉了本地仓库,此时就可以再次克隆远端仓库到本地了:

image-20241204163235131

git_134">所以以上这就是git的三板斧

补充细节

git_140">1.git命令行安装

sudo yum install -y git(centos)

sudo apt install -y git(ubantu)

image-20241204163549217

这样是说明已经装了

或者which git

gitusernameemail_152">2.git首次使用要求输入username,email

image-20241204164013746

image-20241204164133244

所以在git log后我们可以在Author这里后面看到用户名和邮箱

git_160">3.git提交只保存头、源文件

不保存临时文件,也就是只管理后缀为.h .cpp .c这些的文件。

所以在我们构建仓库时有个.gitignore

image-20241204164621188

它就是用来做这个的,帮我们进行本地文件后缀过滤。

如果在这个配置信息里出现的后缀格式,在add commit push的时候都不会被提交。

vim .gitignore我们可以将其打开

这些配置信息里出现的后缀的文件既不会被远端仓库托管,也不会被本地仓库托管,只能算是linux环境下当前目录里的临时文件。

总之就是没有被git管理。

Windows与远端仓库

linux可以把远端仓库拉取下来,Windows上同样可以。

Windows上得装有git

(也可以在Windows终端操作)

现在我们已经装有TortoiseGit

image-20241204165601324

我们在点clone之前要先去复制我们要拉去的远端仓库的链接,然后再点clone,就会自动选中我们要的那个远端仓库。

image-20241204165822062

拉取后就可以看到了。

如果现在我们在Windows里对test2.c进行修改

image-20241204170012768

然后因为我们是修改这个文件而不是新建文件,所以我们直接commit

image-20241204170058357

然后再push

现在我们的linux Windows 远端都有这个相同的仓库了

而刚才Windows用户修改了代码但Linux用户并不知道,在写自己的代码然后想进行上传,因为add和commit是在本地做的所以暂且还不会报错

image-20241204170349237

git push之后就会报错了

image-20241204170420522

rejected

那么怎么办呢?

git pull,将本地的仓库与远端的进行一次同步

cat test2.c我们就能看到Windows用户做了的修改

刚才我们是在add和commit之后因为没同步没push成功的,现在git pull完之后我们不需要重复做add和commit,直接git push就可以。

image-20241204172930913

since我们的linux用户写了个新的代码并同步到了远端,现在我们的Windows用户也出现了无法直接上传的状况。地位对等地,我们也需要先将本地仓库与远端仓库进行一次同步,然后才能再上传自己的代码。

远端仓库相比较于任何人,都是最新的。

实际操作中即使在同一个仓库也要在不同的目录下,这样冲突合并的成本最低。

可以在管理里进行仓库的删除。

image-20241204174349775

对于目录,也可以进行这样的管理,操作都是一样的。


http://www.ppmy.cn/news/1554493.html

相关文章

如何绕过IP禁令

网站、游戏和应用程序可以屏蔽特定IP地址,从而阻止使用该IP地址的任何人访问其服务。这称为IP禁令。管理员可以出于多种原因(例如发出过多请求或可疑活动)屏蔽IP地址。但是,这些禁令会使收集数据或访问在线内容变得更加困难。 一…

保姆级教学 uniapp绘制二维码海报并保存至相册,真机正常展示图片二维码

一、获取二维码 uni.request({url: https://api.weixin.qq.com/wxa/getwxacode?access_token${getStorage("token")},responseType: "arraybuffer",method: "POST",data: {path: "/pages/index/index"},success(res) {// 转换为 Uint…

《人工智能安全:挑战与破局之路》

《人工智能安全:挑战与破局之路》 一、人工智能安全现状二、人工智能安全面临的挑战(一)技术层面的挑战(二)伦理与社会层面的挑战 四、人工智能安全未来发展趋势(一)技术创新引领发展&#xff0…

【Redis源码】网络模型

Redis源码解析网络模型 基于Redis7源码的网络模型解析 前置准备 源码地址:https://github.com/redis/redis Ide:Clion 网络模型 流程节点下方是源码中对应的方法 总结点 Redis 的网络是IO多路复用指令还是单线程串行 扩展的线程池,协助主…

需求场景:查询条件多选时,列表单列实时值分接口获取

文章目录 一、所有条件组合成列表数据(Demo)二、后台进行有效数据快速筛选(Demo) 查询条件多选时,条件为或的关系,那么最终条数为:条件1 * 条件2;如果一起查询时接口统一返回这些数据…

Spring Boot集成Knife4j文档工具

Knife4j 搭建 Knife4j环境的的搭建和Swagger一样都比较简单,只需要极简的配置即可。 maven依赖 我使用的是较高版本的基于openapi规范的依赖包,OpenAPI2(Swagger)规范是Knife4j之前一直提供支持的版本,底层依赖框架为Springfox。 此次在4…

阿里云通义千问:全面解析智能云服务先锋

一、技术架构与基础 模型构建基石 采用大规模语料库训练,涵盖多领域知识,如科学、历史、文学等,确保知识储备丰富多样。运用先进的神经网络架构,深度优化模型结构,提高信息处理效率与准确性。持续的语料更新机制&…

基于微信的追星小程序+ssm

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,追星小程序被用户普遍使用,为方便用户能够可以…