开始前,先提个小小的观念:
✏️ 在 Git 的世界里,不管是新增、删除或重新命名,都可以看为是一个「修改」的动作。
因此这篇所要介绍的删除档案指令 git rm
观念其实跟之前有提到的新增档案後提交是一样的唷!
复习一下之前新增档案与提交的过程 :
新增一个档案 > git add (暂时区) > git commit(储存区)
git add - 告知 git ,我们要「新增」的档案有哪些
将此观念套用到删除档案 git rm
:
删除一个档案 > git rm (暂时区) > git commit(储存区)
git rm - 告知 git ,我们要「删除」的档案有哪些
这里可以得到一个流程概念:
当我们要从 GIt 中删除一个档案时,档案需要是已追踪的档案状态,并且在 暂存区(Staging Area) 操作。
如果档案还在工作目录区时,执行 git rm 指令,会出现什麽讯息呢?
可以得到几个参数,这些参数内容可以观看 Git 文章说明 ,同时也有介绍到之後有哪些方法可以顺利删除档案,在这里我们只要记得,如果使用 git rm
指令,要确认档案是在 暂存区(Staging Area) 才能正确执行。
git rm
rm 为 remove 的意思
🛠 实际操作
直接删除档案 rm
现在资料夹里有一个 helloGit.html 档案
使用 rm
系统指令,直接删除档案
$ rm helloGit.html # 删除档案 helloGit.html
// rm + [档案名称]
查看状态 git status
$ git status # 查看档案状态
此时的档案状态为:Changes not staged for commit (deleted)
Changes not staged for commit
- 已更改 - 代表我们原本已经提交的版本,却又再次修改(这里的修改动作是删除),所以这些档案会被丢回工作目录(WD)。因此我们需要再将档案加入暂存区,并再次提交版本。
使用 git add
加到暂存区,再查看状态
$ git add . # 将(在工作目录的)档案加至暂存区
//Enter 後
$ git status # 查看档案状态
此时的档案状态为:Changes to be committed(deleted)
Changes to be committed
- 等待提交 - 原先在工作目录区的档案经由 git add
指令後,被放置在暂存区(Staging Area),这时候档案状态变成等待着提交。接下来就只要执行 git commit
指令就可以提交完成罗!
这边补充一下,有查询到其他文章说,本来 git add 是不能将删除的档案加入至暂存区,正确方式是使用
git add -u
指令来加入被更动的档案,包含 modified 及 deleted 档案。不过现在某些新版的 Git 是已经可以直接使用 fit add 指令来新增要被删除的档案。
$ git add -u # 一次加入所有被更动的档案,包含 modified 及 deleted
$ git add --update # 同上
// -u **等同於** --update
使用 git commit
指令将档案提交至储存库
$ git commit -m"del file" # 提交档案 - "纪录讯息"
档案提交後讯息回馈 - 提交到 master 、 SHA-1 校验码为 5ef6a5f 、一个档案被更动
执行完後可以打开资料夹检查,会发现档案不见罗!
请 Git 帮忙删除档案 git rm
现在 git_practice 资料夹里有个 helloGit2.html 档案
使用 git rm
指令,请 Git 帮忙删除档案
$ git rm helloGit2.html # 删除档案 helloGit2.html
按下 Enter 後,终端机会回馈讯息 - rm 'helloGit2.html'
查看状态 git status
- changes to be committed / deleted
$ git status # 查看档案状态
此时的档案状态为:Changes to be committed(deleted) - 等待提交
跟上一个方法一样,但是直接透过 git rm 指令,我们可以减少一次步骤,直接加至暂存区(Staging Area)。
使用 git commit
指令将档案提交至储存库
$ git commit -m"del file" # 提交档案 - "纪录讯息"
这样整个使用 git 删除档案的流程就完成了,我们也可以再次使用 git status 指令看看现在的档案状态
nothing to commit
- 没有档案内容可以提交
💡 总结:
两者差异 -> git rm 可将原本两段式需要透过 git add 提交的动作,直接缩短成一个指令。
--cached
参数 - 想要让档案不再被 Git 版本控制,而不是真的完全删除当我们使用 rm 、 git rn 指令时,可以发现在资料夹上的工作目录都是直接将档案移除,如果今天只是想让档案不再被 Git 控管,但是档案依然留在资料夹里,那麽可以使用 --cached
参数执行我们的需求。
$ git rm file.html --cached # 移除 file.html 将之不再被 git 控管
确认现在有个 file.html 档案是被 Git 控管的
输入指令,并使用 git status 检查档案状态
可以发现 file.html 档案状态变更成 Untracked ,代表现在没有被 Git 版本追踪。
首先要写 JavaScript 肯定要有编辑器,Visual Studio Code 是个好选择 再...
前篇回顾 sed - 简介 读取编辑文字档的好工具 sed - 2 Pattern sed - 3 ...
前言: 因为内存不足以在训练的时候存 SavedModel模型 所以我分离出来 以.h5档案先做训练...
前言 前几天都在讲实体记忆体(physical memory)该如何分配,但是在有越来越多行程同时运...
业务(business)就是有关产品和服务交付(delivery),以创造价值并实现组织愿景和使命...