参考源

https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0

版本

本文章基于 Git 2.35.1.2


文件的四种状态

版本控制就是对文件的版本控制

要对文件进行修改、提交等操作,首先要知道文件当前在什么状态。

不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

Git 管理的文件有四种状态:

Untracked:未跟踪

此文件没有加入到 Git 库,不参与版本控制。

通过 git add 变为 Staged 状态。

Unmodify:未修改

文件加入了 Git 库,未修改。

版本库中的文件快照内容与文件夹中完全一致。

这种类型的文件有两种去处:

  • 如果它被修改,而变为Modified。
  • 如果使用 git rm 移出版本库,则变为 Untracked 状态。

Modified:已修改

仅仅是修改,并没有进行其他的操作。

这个文件也有两个去处:

  • 通过 git add 可进入 **Staged **状态。
  • 使用 git checkout 放弃修改,返回到 Unmodify 状态。

git checkout 是从库中取出文件,覆盖当前修改。

Staged:暂存

执行 git commit 将修改同步到库中。

这时库中的文件和本地文件又变为一致,文件为 Unmodify 状态。

执行 git reset HEAD filename 取消暂存,文件为 Modified 状态。

查看文件状态

查看指定文件状态

git status [filename]

查看所有文件状态

git status

忽略文件

有时候我们不想把某些文件纳入版本控制中,比如数据库文件、临时文件、设计文件等。

在主目录下建立 .gitignore 文件,此文件有如下规则

  • 忽略文件中的空行或以 # 开始的行将会被忽略。
  • 可以使用 Linux 通配符。例如:***** 代表任意多个字符,? 代表一个字符,[ ] 代表可选字符范围,{ } 代表可选的字符串。
  • 如果名称的最前面有一个 !,表示例外规则,将不被忽略。
  • 如果名称的最前面是一个 /,表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  • 如果名称的最后面是一个 /,表示要忽略的是此目录下的所有文件。
*.txt        # 忽略所有 .txt 结尾的文件,这样的话上传就不会被选中。
!lib.txt # lib.txt 除外
/temp # 仅忽略项目根目录下的 temp 文件,不包括其它 temp 目录。
build/ # 忽略 build/ 目录下的所有文件。
doc/*.txt # 忽略 doc/notes.txt 但不包括 doc/server/arch.txt。

Git 05 文件操作的更多相关文章

  1. Git 获取文件操作

    1. 在本地新建存放源代码的文件夹: 2. 进入文件夹下,右击选择 Git Bash Here ,弹出git命令行窗口: 3. 运行指定 git init,初始化git: 4. git  remote ...

  2. Git删除文件操作

    使用Git删除文件需要使用Git rm命令来实现,最后git commit 需要注意的是直接rm命令删除后是不可以的,可以用git status 命令尝试一下,效果如图下(创建了test文件,演示了g ...

  3. Git:文件操作和历史回退

    目录 创建仓库 创建文件/文件夹 修改文件/文件夹 回到修改前的版本 撤销修改 删除文件 工作区.暂存区.版本区 创建仓库 创建新文件夹:mkdir learngit 进入:cd learngit l ...

  4. git忽略文件不起作用时

    开始我是直接进到仓库建立了.gitignore文件,再从仓库进入到项目add时总是会添加不需要添加的文件, 后来明白应该是在哪里提交在哪里创建.gitignore文件 git忽略文件操作步骤如下: 1 ...

  5. git初体验(二)基础git文件操作

    文件操作续 忽略一些文件 只需在主目录下建立".gitignore"文件,注意新建的是文件而非文件夹,在win窗口中不能建立以.开头的文件,只能在dos下: E:\knowcars ...

  6. [git] 文件操作

    文件操作 1.  git  add 1.1 将未被git管理的文件添加到暂存区 一次可添加多个文件 文件夹,中间用空格隔开 git  add  文件/文件夹  文件/文件夹 再次执行 git  sta ...

  7. GIT → 05:Git命令行操作

    5.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作: 5.2 初始化Git ...

  8. git文件操作

    git下载地址: https://git-scm.com/download mac 直接使用brew下载brew install git 1Git一般工作流程: 1.在工作目录创建版本库 2.在工作目 ...

  9. 本地Git项目搭建和文件操作

    Git项目搭建 git init ---在该文件夹下进入cmd/terminal git clone [url] ---克隆远程仓库到本地 Git文件操作 文件的四种状态: · Untracked:未 ...

随机推荐

  1. [USACO16JAN]Angry Cows G 解题报告

    一图流 参考代码: #include<bits/stdc++.h> #define ll long long #define db double #define filein(a) fre ...

  2. 配置中心的设计-nacos vs apollo

    简介 前面我们分析了携程的 apollo(见 详解apollo的设计与使用),现在再来看看阿里的 nacos. 和 apollo 一样,nacos 也是一款配置中心,同样可以实现配置的集中管理.分环境 ...

  3. 『忘了再学』Shell基础 — 28、AWK中条件表达式说明

    目录 1.AWK的条件表达 2.条件表达式说明 (1)BEGIN (2)END (3)关系运算符 (4)说明AWK中条件表达式的执行过程 (5)AWK中使用正则表达式 (6)A~B练习 1.AWK的条 ...

  4. C# 使用SpecFlow创建BDD测试用例

    将自然语言编写的测试用例转换为可执行的测试,可以大大降低需求与开发之间的沟通成本,这是BDD(行为驱动开发)希望达到的效果.SpecFlow是.Net平台的BDD工具,可以帮助我们创建面向BDD的测试 ...

  5. LVS+keepalived简单搭建(二)

    在LVS1的基础上进行搭建 https://www.cnblogs.com/hikoukay/p/12860476.html keeplived主机 用node01,node04两台 先清掉原先nod ...

  6. redis入门,linux安装

    1.下载 https://redis.io/download 2.上传到linux服务器tools文件夹下 3.解压到安装目录 tar -zxf /app/redis/redis-5.0.4.tar. ...

  7. robotframework之环境安装

    一.安装python2.7环境,python --version查询python安装的版本 二.setuptools安装

  8. JavaScript中async和await的使用以及队列问题

    宏任务和微任务的队列入门知识,可以参考之前的文章: JavaScript的事件循环机制 宏任务和微任务在前端面试中,被经常提及到,包括口头和笔试题 async && await概念 a ...

  9. zabbix实时监控mysql业务数据

    1. 安装zabbix agent 下载zabbix:过往的软件包都有:https://sourceforge.mirrorservice.org/z/za/zabbix/ZABBIX%20Lates ...

  10. java反射之-Javabean与Map的互转

    1.BeanUntils工具类的准备 /** * @ClassName: BeanUtils * @Description: * @Author: songwp * @Date: 9:02 2022/ ...