引子:关于git命令的使用,其实也是因人而异的,大多数人选择客户端的使用,因为方便,容易看懂,个人喜欢命令,所以尝试开个专栏讲讲git那些事。
本文不论顺序介绍各个git命令,翻译内容源自于 本机上通过git clean --help所打开的内容
git-clean(1) 手册页
名称:
git-clean - 移除工作区未跟踪的文件
概要:
git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…
描述:
从当前文件夹开始,通过递归地移除未在版本控制下的文件来清理工作区
正常而言,只有git不识别的那些文件才会被移除,但是如果你指定了 -x 选项,那些被忽略的文件也能被移除。这能做什么呢?比如:对于移除所有已构建好的项目中文件(原文为:build products, 存疑,个人理解为已被发布的项目,由于英语中存在省略形式,故这里应该是省略了 files)是有用的
如果你加入了其中的<path>路径参数,那么就只有那些路径对应的文件才会收到影响
选项:
-d:
正常而言,当未指定<path>路径时,为了防止移除太多文件,运行git clean时将不会递归进入未跟踪的文件夹。指定 -d 让其递归进入这样的文件夹也是可行的。如果有指定任意的路径, -d 就不那么重要了;所有匹配指定路径的未跟踪文件(除了那些使用 --force 指明的嵌套的git文件夹)都将被移除
-f (--force):
如果git的配置变量 clean.requireForce未被设置为false,除非带上了 -f 或者 -i , git clean将拒绝删除文件或者文件夹。并且,除非你再加上一个 -f ,否则git仍会拒绝修改那些未跟踪的且嵌套的git仓库(子目录包含.git的文件夹)。
-i (--interactive):
展示将会被完成的内容以及交互式清理文件。详情可查看“交互模式”。
-n (--dry-run):
顾名思义,排练,即并不移除什么,只展示移完之后的结果。
-q (--quiet):
顾名思义,安静,仅仅只展示报错信息,并不会将成功移除的文件展示出来。
-e <pattern> (--exclude=<pattern>):
使用自己定义的忽略模式,但是除了那些标准的忽略规则(查看 gitignore(5)). // ps: 链接可通过git bash/powershell 下运行git clean --help查看对应消息
-x:
不使用那些标准的忽略规则(查看 gitignore(5)),但是可使用通过命令行 -e 选项配置的忽略规则。其允许移除未跟踪文件,包含已构建的项目中的文件。其能被用来创建一个崭新的工作文件夹(有可能同时设置在git restore 或是 git reset中)以测试干净的构建过程(此处可能有误)
(in conjunction with: 与...同时存在, pristine: 崭新的,本来的,原本的)
-X:
仅仅移除被git忽略的文件。这也许有助于重构那些拼凑的,但是手动创建的文件
交互模式:
当键入了交互模式的命令后,其会展示那些要被清理的文件和文件夹,并进入其交互命令的循环中。
此时,其展示了可用的子命令列表,并给出 “what now”(当前处于什么状态) 的提示。一般而言,当提示以单>结尾后,你仅能选择上述给予的选项及类型之一予以返回,就像这样:
*** Commands *** 1: clean 2: filter by pattern 3: select by numbers4: ask each 5: quit 6: help What now> 1
你也可以键入上述提及的 c 或者 clean ,只要这类选项是已有的
主要的命令循环有6个子命令
clean:
开始清理文件和文件夹,然后退出
filter by pattern:
这个模式将展示要被删除的文件和文件夹,并能提示"Input ignore patterns>>"(即输入忽略的模式)。你可以键入以空格分隔的模式串来过滤掉其中的某些文件和文件夹。例如:(E.g.:for example, 例如)"*.c *.h" 将会过滤掉删除文件夹中以 .c 及.h 结尾的文件,如果你对过滤结果满意,可以键入 ENTER 以回到主菜单。
select by numbers:
这个模式将展示要被删除的文件和文件夹,并能提示"Select items to delete>>"(即选择删除项)。当提示以双>>这样结尾后,你即可选择多于1个的选项,以空格或者逗号连接(concatenated with: 连接, comma: 逗号、停顿)。当然,你也能选择一个范围。例如:"2-5 7,9",以此可选择列表的 2, 3, 4, 5, 7, 9项。如果范围中的第二数值被遗漏了(omitted: 遗漏),那么其值之后的所有已存在项都将被选择。例如,"7-"会选择列表中的7,8,9项。你也可以使用 * 来选择所有项。如果你对过滤结果满意,可以键入 ENTER 以回到主菜单。
ask each:
其将会开始清理,并且你还必须得一项一项的确认以确定删除项。请注意这个操作没有同时执行2个操作以上一样高效。
quit:
其不做任何清理就直接离开
help:
简单展示交互模式下 git-clean 的使用
GIT:
git(1)系列之一