Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
隐藏文件和github存储库存在问题_Git_Github - Fatal编程技术网

隐藏文件和github存储库存在问题

隐藏文件和github存储库存在问题,git,github,Git,Github,我有一个存储在本地和GitHub上的存储库 此存储库用于存储我的网站的内容 在注册了CMS并在GitHub目录中创建了一个隐藏文件后,我改变了主意,想删除隐藏文件 我表演过 git pull origin master 为了将我的本地文件与GitHub上的文件同步,我在本地删除了隐藏的文件,并运行了以下程序,希望它能将最新的文件与我的本地目录同步 git add * git commit -m "Removed CMS hidden files" git push -u origin mast

我有一个存储在本地和GitHub上的存储库

此存储库用于存储我的网站的内容

在注册了CMS并在GitHub目录中创建了一个隐藏文件后,我改变了主意,想删除隐藏文件

我表演过

git pull origin master
为了将我的本地文件与GitHub上的文件同步,我在本地删除了隐藏的文件,并运行了以下程序,希望它能将最新的文件与我的本地目录同步

git add *
git commit -m "Removed CMS hidden files"
git push -u origin master
然而,当我这样做的时候,我得到了以下信息

    On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
    deleted:    .forestry/front_matter/templates/catalogue-entry.yml
    deleted:    .forestry/settings.yml

Untracked files:
    .DS_Store

no changes added to commit

我想要的结果是,我已经在本地与我的GitHub目录完全同步,删除了CMS添加的隐藏文件。

TL;博士使用
git add[--all |-A]
git add[.|-A.]
git add-u
git add'*'
,而不是
git add*
。其中一个可能有效(使用
git status
验证哪个有效)


来自和:

  • git add--all
    git add-A
    在整个工作树上分期执行所有更改
  • git add-u
    阶段性修改和删除,无需新文件
  • 在git版本1.x中,
    git add.
    在整个工作树上暂存新文件和修改,不进行删除
  • 从git 2.0开始,
    git add.
    (或
    git add-A.
    )将暂存新的/修改的/删除的文件(所有更改),但仅在当前目录(
    /
    目录)上
  • 要获得git add.的旧行为,我们必须
关于
git add*
,来自:

  • 在git中,
    add*
    由shell解释
    *
    ,与git无关如果您的shell是Bash,则以
    (Linux上的隐藏文件)开头的文件和目录将不会与
    *
    匹配,因此它们不会被传递到
    git add
    ,也不会被添加到索引中

  • 如果在Windows非bash解释器中运行
    git add*
    ,则
    *
    将直接传递给
    git add
    。在这种情况下,将添加名称以
    开头的文件和目录

因此,git add*的行为不同于Windows和Linux,OP可能使用Linux/git和bash shell系统,这就是为什么他得到这样的信息:

 Changes not staged for commit:
    deleted:    .forestry/front_matter/templates/catalogue-entry.yml
    deleted:    .forestry/settings.yml
git add*
之后,由于(使用bashshell)
add*
与以
开头的文件不匹配,所以没有添加*

鼓励大家阅读更多关于git add*的详细信息


结论:取决于案例(您所在的目录,是否要删除、添加或修改,等等),我的上述建议之一可能有效,但
git add[--all,-A]
恰好是最安全的方法,可以将所有更改包括整个工作树上的隐藏文件-整个存储库。

尝试
git add--all
而不是
git add*
以查看它是否有效我可以将其作为答案吗?当然,其他建议的链接无法回答我的问题的原因是,我已经在本地删除了它们,只是想同步这两个命令。@LoiNguyenHuynh您是否介意扩展您的答案以解释这两个命令之间的差异?您可能想删除或忽略ds_存储文件。
git add-u
是最安全的添加方式没有新文件的修改和删除,它不应该是“may”工作命令集的一部分。我写“may”工作,因为我还没有测试过它,但我对git不太满意,所以我写了“may”。关于git add--all,OP使用了它,它确实为他工作了,所以我写了:“将工作”。如果你认为你可以改进我的答案,请帮我一个忙,给我一个编辑建议。谢谢。看起来,
git add.
只会对当前文件夹(
文件夹)中的文件进行更改,而不是像我上面所说的新文件和修改。