Git缺少一些文件

时间:2015-05-19 10:12:23

标签: git

当我尝试将本地存储库推送到空的远程存储库时,我正在执行以下操作:

git add .
git status

当我正在运行git status时,我发现有些文件没有上传,这是我的git bash和我的本地工作副本的截图:

Screeshot of git bash and my local working copy.

我的忽略文件:

*.*

#####Directories
!CefSharp/Internals/*
!CefSharp/Properties/*

!CefSharp.BrowserSubprocess/Properties/*

!CefSharp.Core/Internals/*
!CefSharp.Core/Win32/*

!CefSharp.Example/ExtensionMethods/*
!CefSharp.Example/Properties
!CefSharp.Example/Proxy
!CefSharp.Example/Resources

!CefSharp.WinForms/Internals/*
!CefSharp.WinForms/Properties/*

!CefSharp.WinForms.Example/Minimal/*
!CefSharp.WinForms.Example/Properties/*
!CefSharp.WinForms.Example/Resources/*
!CefSharp.WinForms.Example/Tools/*

!ipch/*
!packages/*
!Resources/*
!RexCao/Properties/*

!SysHandle/Properties/*

!TimesheetUpdater/Properties/*
!TimesheetUpdater/Resources/*
!TimesheetUpdater/Tools/*

!TSNetChecker/Properties/*
!TSNetChecker/Resource/*
!TSNetChecker/Resources/*
!TSNetChecker/Tools/*

!UIThreadTest/Properties/*

!Win32/*

#####Files
!CefSharp/*.cs
!CefSharp/*.csproj

!CefSharp.BrowserSubprocess/app*
!CefSharp.BrowserSubprocess/*.csproj
!CefSharp.BrowserSubprocess/*.cs

!CefSharp.BrowserSubprocess.Core/*.cpp
!CefSharp.BrowserSubprocess.Core/*.h
!CefSharp.BrowserSubprocess.Core/*.vcxproj.*
!CefSharp.BrowserSubprocess.Core/*.config

!CefSharp.Core/*.cpp
!CefSharp.Core/*.h
!CefSharp.Core/*.vcxproj.*
!CefSharp.Core/*.config

!CefSharp.Example/*.cs
!CefSharp.Example/*.csproj

!CefSharp.WinForms/*.csproj
!CefSharp.WinForms/*.cs

!CefSharp.WinForms.Example/*.cs
!CefSharp.WinForms.Example/app.*
!CefSharp.WinForms.Example/*.csproj.*
!CefSharp.WinForms.Example/*.ico
!CefSharp.WinForms.Example/*.config
!CefSharp.WinForms.Example/*.resx

!RexCao/*.cs
!RexCao/*.csproj

!SysHandle/*.cs
!SysHandle/*.csproj

!TimesheetUpdater/*.ico
!TimesheetUpdater/*.cs
!TimesheetUpdater/*.resx
!TimesheetUpdater/*.csproj

!TSNetChecker/*.cs
!TSNetChecker/*.resx
!TSNetChecker/*.ico
!TSNetChecker/*.csproj

!UIThreadTest/*.config
!UIThreadTest/*.cs
!UIThreadTest/*.resx
!UIThreadTest/*.csproj

!.gitignore
!*.ps1
!*.yml
!*.bat
!*.props
!*.snk
!*.sdf
!*.sln

我的问题是:为什么错过了一些文件?

3 个答案:

答案 0 :(得分:2)

为了在目录下包含所有文件,您必须将其指定为:

!directory/**

没有一个星号(*)。

由于您已指定忽略所有文件

*.*

除了包含爆炸(!)的那些之外,您必须正确指定要添加的文件。

背景

正如您在specifications中所读到的那样,单个星号与目录下的文件直接匹配。不是子目录中的文件。

为了取消忽略目录中的所有文件,您需要使用两个连续的星号:

  

两个连续的星号(“**”)与完全匹配的模式   pathname可能有特殊含义:

     
      
  • 前导“**”后跟斜杠表示所有目录都匹配。例如,“**/foo”将文件或目录“foo”与任何地方匹配   与模式“foo”相同。 “**/foo/bar”匹配文件或目录“bar”   位于“foo”目录下的任何地方。

  •   
  • 尾随“/**”匹配内部的所有内容。例如,“abc/**”匹配目录“abc”内的所有文件,相对于位置   .gitignore文件,无限深度。

  •   
  • 斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录。例如,“a/**/b”匹配“a/b”,   “a/x/b”,“a/x/y/b”等等。

  •   
     

其他连续的星号被视为无效。

答案 1 :(得分:1)

Git add不包含索引中文件的chuck。

请使用

git add . --all

包含所有文件并删除已删除的文件。

答案 2 :(得分:0)

您是否尝试添加空目录?
除非你将内容设置为这些文件夹,否则Git不会让你?将空.gitkeep文件添加到该文件夹​​,然后添加

忽略文件
您是否检查过忽略的文件未在全局忽略文件中设置

您是否尝试添加已删除/重命名的文件?
git add -A(替换git add.; git add -u .