gpt4 book ai didi

git - 对于初始提交, "add ."和 "add *"是同义词吗?

转载 作者:太空狗 更新时间:2023-10-29 13:29:09 31 4
gpt4 key购买 nike

git add .git add * 会完成完全相同的事情吗?

最佳答案

不,不会。

* 是一个 glob 模式,不会匹配以 开头的文件。

例如,假设这是当前目录,我有 2 个新文件要添加 foo.bar

$ ls -l

-rw-r--r-- 1 me users 0 Mar 7 19:31 foo
-rw-r--r-- 1 me users 0 Mar 7 19:31 .bar

当我运行 git add * 时:

$ git add *

$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: foo
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .bar

相反,如果我运行 git add .

$ git add .

$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: .bar
# new file: foo
#

顺便说一句,如果您只想添加您所在的特定目录下的所有文件,使用 git add * .* 会产生不正确的结果

让我们考虑这种情况,我有 6 个新文件:

foo
.bar
mydir/abc
mydir/.def
mydir2/newfile1
mydir2/newfile2

如果我在 mydir 中运行 git add 。 git 只会添加以下文件:

mydir/abc
mydir/.def

相反,如果您运行命令 git add * .*,git 添加 mydir 中的文件以及自 以来上一级目录的任何更改。 * glob 模式也匹配 ../。换句话说,将添加以下文件:

foo
.bar
mydir/abc
mydir/.def
mydir2/newfile1
mydir2/newfile2

关于git - 对于初始提交, "add ."和 "add *"是同义词吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286209/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com