当我尝试将本地存储库推送到空的远程存储库时,我正在执行以下操作:
git add .
git status
当我正在运行git status
时,我发现有些文件没有上传,这是我的git bash和我的本地工作副本的截图:
我的忽略文件:
*.*
#####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
我的问题是:为什么错过了一些文件?
答案 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 .
)