二、Git本地仓库基本操作——创建Git仓库、提交更新或删除文件

news2024/9/20 22:32:26

1. 创建本地工作仓库

创建本地工作仓库有两种方法:

  1. git init 在本地初始化一个git仓库
  2. git clone 直接克隆一个远程的git仓库

方法一

我们在其中一个目录下,点击鼠标右键,然后启动git bash。输入下面命令:

git init

这条命令即可创建一个git仓库。

然后再当前目录下,会创建一个 .git 的隐藏文件夹:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wt4xmwgj-1670071929515)(../picture/image-20221113231146804.png)]

里面包含了一个git初始化仓库所必须的文件(每个文件的作用暂时还没研究),如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZDgvibi3-1670071929516)(../picture/image-20221113231210330.png)]

方法二

使用git clone命令。

git clone 远程仓库地址

# 可以重命名克隆的远程仓库名称
git clone 远程仓库地址 新的仓库名称

2. 新建、修改文件后提交更新到本地仓库

上一篇文章介绍到,git 的工作过程其实都是围绕下面这幅图进行的:

所以,我们初始化了仓库之后,根据这幅图进行git的一些基本命令操作。

Git 文件的4种状态:

  1. untracked。未跟踪,表示文件不受git管理,我们新建的文件就是处于 这种状态。
  2. staged。已暂存,表示已对修改的文件做了标记,使之包含在下次要提交的文件的跟踪列表中changes to be committed
  3. committed。已提交,表示文件已经被提交到本地仓库committed
  4. modified。已修改,表示文件内容已被修改,但没有做标记changes not staged for commit

下面我们就实例演示下这4种工作状态。

2.1 查看工作目录下的文件状态

git status

git status 命令用于查看仓库当前状态,显示有变更的文件。

示例

当工作区文件数量很多时,可以使用 -s 参数输出简短的信息,即:git status -s

2.2 添加一个新的文件到暂存区

git add <文件名或者目录>
# 文件名支持通配符*的形式,比如说 *.c 就是表示工作区中所有的c文件
# 如果是目录的话,那么会递归跟踪该目录下的所有文件

该命令相当于把工作区的文件,添加到了暂存区,其实就是相当于git跟踪了这个文件。

  • 文件名支持通配符*的形式,比如说 *.c 就是表示工作区中所有的c文件
  • 如果是目录的话,那么会递归跟踪该目录下的所有文件
  • git add . 相当于就是当前目录的全部文件都添加到暂存区。 . 表示当前目录, … 表示上一级目录

示例

2.3 提交暂存区的文件到本地仓库

使用 git add 命令跟踪了文件之后,就可以提交更新到本地仓库了,使用如下命令:

git commit

注意:

  1. 提交前已经设置好了用户名和邮箱
  2. 该命令只是将暂存区的内容提交到仓库,我们可以在提交前使用 git status 命令查看是否有改变没有添加到暂存区。

我们调用这条命令的时候,都会打开 vim 编辑器,然后用户可以输入提交更改的信息,然后保存更改信息就可以提交成功了。

但是如果我们不熟悉vim编辑器,而且提交的信息又比较简单的话,我们可以输入一条字符串来保存更改的信息。

# 提交整个暂存区的文件
git commit -m "<提交信息>"

#只提交暂存区指定的文件
git commit [file1] [file2] ... -m "<提交信息>"

示例

每次提交其实相当于记录了一次快照,后面我们在任何时候都可以退回到本次状态。

2.4 修改文件

我们把上面新建的 test.c 文件进行修改。

vim test.c

vim编辑器打开文件(或者使用其他编辑器都可以),修改内容:

然后回到vim命令状态,保存退出即可。

2.5 添加改动的文件到暂存区

前面已经使用过 git add 命令添加文件到暂存区了,但是那个文件是新建的文件,还没有跟踪的。

我们修改之后,查看文件状态:

暂存修改的文件也是 git add 命令,只是前面是新的文件添加到暂存相当于跟踪了这个文件。现在是已经跟踪的文件被修改了,然后添加到暂存区。

2.6 比较文件在暂存区和工作区的差异

git diff

该命令可以比较在工作区(也就是我们的工作目录)中已经被修改的文件,和已经写入暂存区的文件,他们之间的差异。

git status 命令其实可以列出哪些文件被修改了,但是不能列出文件修改的内容,而 git diff 是可以的。

  • 尚未缓存的改动:git diff ,其实就是现在是暂存区和工作区之间的差异。
  • 查看已缓存的改动: git diff --cached 或 git diff --staged ,显示暂存区和最近一次提交(commit)的差异。
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat

我们把上面的 test.c 文件进行修改,然后保存退出:

查看文件状态,和改动:

2.7 跳过暂存区直接提交更新

我们对文件更改后,一般需要先使用 git add 命令,先添加到暂存区,然后才能使用 git commit 命令提交更新到本地仓库的。

每次都经过 git add 这一步太过繁琐,所以我们可以使用 -a 参数来直接跳过这一步,直接提交更新,命令如下:

# 提交整个暂存区的文件
git commit -a -m "<提交信息>"

#只提交暂存区指定的文件
git commit [file1] [file2] ... -a -m "<提交信息>"

其实就是多了 -a 参数,下面看看示例图:

2.8 将文件从暂存区或工作区中删除

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。

所以我们必须使用 git 的命令进行删除文件。

1、将文件从暂存区和工作区中一起删除:

git rm <文件名>

该命令相当于把源文件也删除了。

2、如果想把文件从暂存区域移除,但仍然保留源文件。换句话说,仅是从跟踪清单中删除,使用 –cached 选项即可:

git rm --cached <文件名>

3、删除目录

该命令和上面两条命令一样,指不定多了 -r 参数,表示删除目录。该命令会递归删除本目录下的所有文件和子目录。

git rm –r <目录名>

示例

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

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

相关文章

【实战案例】Python 信用卡欺诈检测其实特简单

当我们在网上购买产品时&#xff0c;很多人喜欢使用信用卡。但信用卡欺诈常常会在身边发生&#xff0c;网络安全正成为我们生活中至关重要的一部分。 为了解决这个问题&#xff0c;我们需要利用机器学习算法构建一个异常行为的识别系统&#xff0c;如果发现可疑&#xff0c;中…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校饭堂管理系统8gmjo

这个选题的话其实有很多的&#xff0c;就看你自己能接受怎么样的&#xff0c;比如可以做网站类、系统类、小程序类、安卓app、大数据类等等&#xff0c;这个也要看你个人能力和技术问题&#xff0c;如果技术小白或者有一点点基础的话建议选择网站类和系统类的&#xff0c;如果有…

微服务框架 SpringCloud微服务架构 10 使用Docker 10.2 镜像命令练习

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构10 使用Docker10.2 镜像命令练习10.2.1 练习10 使用Docker 10.2 镜像命令…

Spring boot 自动装配原理

Spring boot 为了解决Bean的复杂配置&#xff0c;引入了自动装配机制&#xff1b;那么什么是自动装配&#xff0c;它的原理又是什么呢&#xff1f;我们先通过以下例子来了解以一下什么是自动装配。 Spring boot 集成 redis 引入依赖包 <dependency><groupId>org…

CTFShow pwn07 (ret2libc-64bit

用ROPgabdet 找到pop rdi地址和ret地址&#xff1a; 来自ctfshow pwn7&#xff1a; 64位程序是需要栈平衡的&#xff0c;而且前六个寄存器用完了才会用栈传参 %rdi&#xff0c;%rsi&#xff0c;%rdx&#xff0c;%rcx&#xff0c;%r8&#xff0c;%r9 用作函数参数&#xff0c;依…

rust编程-rust所有权理解(chapter 4.1)

目录 1. 什么是所有权 1.1 堆与栈 1.2 变量作用域 1.3 String类型 1.4 内存和分配 1.5 变量和数据交互的方式 1.5 所有权和函数 1.6 返回值和作用域 所有权 是Rust独有的特性&#xff0c;该设计开创了编程语言中的先河。所有权使得Rust能保证内存的安全&#xff0c;且不…

游程编码(Run Length Coding)

游程编码游程编码基本介绍示例1示例2游程编码适用的场景游程编码 游程编码&#xff08;Run Length Coding&#xff0c;简称RLC&#xff09;又称游程编码、行程长度编码、变动长度编码 等&#xff0c;是一种统计编码。主要技术是检测重复的比特或字符序列&#xff0c;并用它们的…

亚马逊云科技re:Invent 2022 Ruba Borno主题演讲

2022亚马逊云科技re:Invent全球大会精彩内容应接不暇&#xff0c;亚马逊云科技全球渠道与联盟副总裁Ruba Borno在2022亚马逊云科技re:Invent大会的全球合作伙伴峰会上&#xff0c;为合作伙伴带来一系列全新的合作伙伴创新服务。 云上发展持续加速的当下&#xff0c;上云好比一场…

使用Fiddler对手机App抓包

目录 一、查看 Fiddler 的 ip 地址 二、设置 Fiddler 允许远程连接 三、进行手机端 App 的抓包 3.1.准备工作 3.2.手机设置 3.3.安装根证书 四、可能会遇到的问题 一、查看 Fiddler 的 ip 地址 有两种方法都可以查询到。 第一种方法&#xff1a; 打开 Fiddler&#xff…

[附源码]计算机毕业设计springboot在线招聘网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

一分钟带你了解音视频开发进阶(先收藏了)

FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发学习路线 随着基础设施的完善&#xff08;光纤入户、wifi覆盖、5G普及&#xff09;的影响&#xff0c;将短视频、直播、视频会议、在线教育、在线医疗瞬间推到了顶峰&#xff0c;人们对音视频的需求和要求也越来越强烈 音视…

实现java项目idea打包发布至服务器(完整版)

问题&#xff1a;如何快速部署本地代码到服务器&#xff1f; 今天介绍的是使用idea的一款插件(Alibaba Cloud Toolkit)实现&#xff0c;首先需要在自己的服务器上安装运行环境&#xff0c;包括&#xff1a;jdk、maven、mysql等&#xff0c;这些操作就不详细说了&#xff0c;可…

Inductive Representation Learning on Large Graphs 论文/GraphSAGE学习笔记

1 动机 1.1 过去的方法 现存的方法大多是transductive的&#xff0c;也就是说&#xff0c;在训练图的时候需要将整个图都作为输入&#xff0c;为图上全部节点生成嵌入&#xff0c;每个节点在训练的过程中都是可知的。举个例子&#xff0c;上一次我学习了GCN模型&#xff0c;它…

考研数据结构大题整合_组三(LZH组)

考研数据结构大题整合 目录考研数据结构大题整合三、LZH组LZH 组一LZH 组二LZH 组三LZH 组四LZH 组五LZH 组七三、LZH组 LZH 组一 给出如图所示的无向图G的邻接矩阵和邻接表两种存储结构. &#xff08;2&#xff09;解答下面的问题&#xff08;6分&#xff09; &#xff08;…

二、进程管理(五)死锁

目录 5.1死锁的定义和产生条件 5.2死锁的处理策略 5.2.1死锁预防 5.2.2死锁避免 5.2.3死锁检测和解除 5.1死锁的定义和产生条件 在并发环境下&#xff0c;各进程因竞争资源而造成的一种互相等待对方手里的资源&#xff0c;导致各进程都阻塞&#xff0c;都无法向前推进的现…

【GlobalMapper精品教程】034:创建漫游动画并制作漫游视频的方法

本实例讲解在globalmapper中根据路径创建漫游动画,并制作漫游视频的方法。 文章目录 一、绘制漫游路径二、创建3D虚拟漫游三、播放虚拟漫游四、保存虚拟漫游实验数据可以是点云数据、DEM、三维模型等,本文加载数字表面模型DSM进行演示。 一、绘制漫游路径 同创建矢量线状数据…

海带软件分享——日常办公学习软件分享(收藏)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f680; 写在前面 &#x1f431;‍&#x1f3cd; 本期开始&#xff0c;小海带会定期推荐一些日常办公学习软件及趣味网址&#xff0c;供大家交流参考 ~ 小伙伴们记得一键三连喔&#xff01;&#x1f6…

几款好用到爆炸的在线画图工具

前言 实际工作中&#xff0c;我们经常会编写文档以及制作图表。尤其是对一名优秀的攻城狮来说&#xff0c;经常会用各种各样的软件来制作流程、思维导图、思维笔记等。一个良好的思维导图能系统概括项目工程的整体结构和开发的系统框架。要想制作一个完美的流程图、思维导图离不…

菜狗杯Misc一层一层一层地剥开我的♥wp

目录一、原题二、解题步骤对jpg图片的处理对文件名是一个心形的数据文件的处理base100解码这题完全是看着官方wp复现的&#xff0c;感觉涉及的步骤比较多但每一步本身不难&#xff0c;多记录一遍加深印象。 一、原题 原题给的是一个叫myheart.zip的文件&#xff0c;但尝试解压…

高通开发系列 - ALSA声卡驱动中音频通路kcontrol控件

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 高通开发系列 - ALSA声卡驱动中音频通路kcontrol控件问题背景高通音频通路如何建立widget和routemixer类控件名组合mixer类控件名拼接…