首页 > 其他分享 >git add --all 为啥不能添加空文件夹,这样设计的初衷是

git add --all 为啥不能添加空文件夹,这样设计的初衷是

时间:2023-01-02 17:34:53浏览次数:52  
标签:文件 git -- 命令 add 库中

 

git add --all 为啥不能添加空文件夹,这样设计的初衷是?

好多项目还得弄个假文件在空文件夹里面占位

这个算设计失误吧,见 ​​https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F​

Currently the design of the git index (staging area) only permits files to be listed, and nobody competent enough to make the change to allow empty directories has cared enough about this situation to remedy it.

大概就是,有能力搞的人不关心,没能力搞的人搞不动……



作者:Leedy


著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

大概是linus一开始就把快照设计成只有文件组成,后来想想要改太难,就算了吧。反正你们可以用假文件来占位(oh,so linux!),为什么要linus亲自实现它。

 

现在的主流做法是在空文件夹里放置一个.gitkeep文件

加个.gitconfig文件在里面比较实用,也不会觉得突兀。虽然绝大多数时候这个文件也没什么卵用。

 

一、前言
git add命令主要用于把我们要提交的文件的信息添加到索引库中。当我们使用git commit时,git将依据索引库中的内容来进行文件的提交。
二、基本
git add <path>表示 add to index only files created or modified and not those deleted 
我通常是通过git add <path>的形式把我们<path>添加到索引库中,<path>可以是文件也可以是目录。
git不仅能判断出<path>中,修改(不包括已删除)的文件,还能判断出新添的文件,并把它们的信息添加到索引库中。
三、git add -u
git add -u 表示 add to index only files modified or deleted and not those created 
git add -u [<path>]: 把<path>中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件。
省略<path>表示.,即当前目录
四、git add -A
git add -A: [<path>]表示把<path>中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。
省略<path>表示.,即当前目录。
五、git add -i
我们可以通过git add -i [<path>]命令查看<path>中被所有修改过或已删除文件但没有提交的文件,
并通过其revert子命令可以查看<path>中所有untracted的文件,同时进入一个子命令系统。
比如:
 git add -i
           staged     unstaged path
  1:        +0/-0      nothing branch/t.txt
  2:        +0/-0      nothing branch/t2.txt
  3:    unchanged        +1/-0 readme.txt

*** Commands ***
  1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked
  5: [p]atch      6: [d]iff       7: [q]uit       8: [h]elp
What now>
这里的t.txt和t2.txt表示已经被执行了git add,待提交。即已经添加到索引库中。
readme.txt表示已经处于tracked下,它被修改了,但是还没有被执行了git add。即还没添加到索引库中。
5.1、revert子命令
可以通过git add -i的revert子命令(3: [r]evert)把已经添加到索引库中的文件从索引库中剔除。
(3: [r]evert)表示通过3或r或revert加回车执行该命令。执行该命令后,git会例出索引库中的文件列表.
然后通过数字来选择。输入"1"表示git会例出索引库中的文件列表中的第1个文件。
"1-15"表示git会例出索引库中的文件列表中的第1个文件到第15个文件.回车将执行。
如果我们不输入任何东西,直接回车,将结束revert子命令,返回git add -i的主命令行。
5.2、update子命令
可以通过update子命令(2: [u]pdate)把已经tracked的文件添加到索引库中。其操作和revert子命令类似。
5.3、add untracked子命令
通过add untracked子命令(4: [a]dd untracked)可以把还没被git管理的文件添加到索引库中。其操作和revert子命令类似。
5.4、diff子命令
可以通过diff子命令(6: [d]iff)可以比较索引库中文件和原版本的差异。其操作和revert子命令类似。
5.5、status子命令
status子命令(1: [s]tatus)功能上和git add -i相似
5.6、quit子命令
quit子命令(7: [q]uit)用于退出git add -i命令系统
六、帮助
我们可以通过git add -h命令来看git add命令的帮助文档。
 git add -h
usage: git add [options] [--] <filepattern>...
    -n, --dry-run         dry run
    -v, --verbose         be verbose
    -i, --interactive     interactive picking
    -p, --patch           select hunks interactively
    -e, --edit            edit current diff and apply
    -f, --force           allow adding otherwise ignored files
    -u, --update          update tracked files
    -N, --intent-to-add   record only the fact that the path will be added later
    -A, --all             add changes from all tracked and untracked files
    --refresh             don't add, only refresh the index
    --ignore-errors       just skip files which cannot be added because of errors
    --ignore-missing      check if - even missing - files are ignored in dry run

标签:文件,git,--,命令,add,库中
From: https://blog.51cto.com/u_15147537/5983869

相关文章

  • 洛谷P1862输油管道问题
    题目传送门二话不说先上代码:#include<bits/stdc++.h>usingnamespacestd;intn;intx,y[10001];intmain(){ scanf("%d",&n); for(inti=1;i<=n;i++){ scanf("%......
  • day01
    MarkDown一级标题#+空格标题二级标题##+空格字体helloworld****加粗helloworldhelloworld**斜体helloworld斜体+加粗******helloworldhelloworld......
  • daily study 7
    学习数组作为函数的参数:写一个冒泡排序函数,将一个整形数组排序冒泡排序:两两相邻元素进行比较,然后进行交换#include<stdio.h>voidth(intarr[],intsz){ //确定冒泡排序......
  • 盒子模型
    ​ 【1】生活案例入手: 【2】盒子模型:页面上也有很多元素,元素之间的布局/设计依靠盒子模型:所有HTML元素可以看作盒子,在CSS中,"boxmodel"这一术语是用来设计和布局......
  • NC16679 [NOIP2003]神经网络
    题目链接题目题目描述人工神经网络(ArtificialNeuralNetwork)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对......
  • nginx使用小记
    中文wiki社区:http://wiki.codemongers.com/NginxChs一.nginx安装1.下载nginx:http://sysoev.ru/nginx/download.html(官方下载页面)wgethttp://sysoev.ru/nginx/nginx......
  • Spring Boot 探索系列 - 自动化配置篇
    26. Logging​​Prev​​ Part IV. SpringBootfeatures ​​Next​​26. LoggingSpringBootuses ​​CommonsLogging​​​ forallinternallogging,butle......
  • 第十四章《多线程》第1节:线程基本原理
    ​计算机上可以运行程序,每一个正在运行着的程序都被称为“进程”,每个进程都拥有独立的系统资源以及地址空间,在没有进程允许的情况下,另一个用户进程不能访问这个进程的地址空......
  • 第20章_ CSS-练习
    ​  层叠样式表(英文全称:CascadingStyleSheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可......
  • JAVA定时调度框架Quartz使用案例
    背景:             近期项目中遇到跨区调拨商品的需求,比如A区和B区,需要判断A区或者B区某种sku是否需要从对方库调拨商品来补充货源,避免因缺失商品而出现订单......