Accepted answer

it means the class is not yet added to the repository.

if your project was checked-out (most probably a cvs project) and you added a new class file, it will have the ? icon.

for other cvs label decorations, check


this is because your project has been linked to a git-hub repository, and the file having question mark on it, is not been added yet. if you want to remove this sign you will have to add this file to git-hub repository.


those icons are a way of egit to show you status of the current file/folder in git. you might want to check this out:

image describing eclipse icons for egit

  • dirty (folder) - at least one file below the folder is dirty; that means that it has changes in the working tree that are neither in the index nor in the repository.
  • tracked - the resource is known to the git repository. untracked - the resource is not known to the git repository.
  • ignored - the resource is ignored by the git team provider. here only the preference settings under team -> ignored resources and the "derived" flag are relevant. the .gitignore file is not taken into account.
  • dirty - the resource has changes in the working tree that are neither in the index nor in the repository.
  • staged - the resource has changes which are added to the index. not that adding to the index is possible at the moment only on the commit dialog on the context menu of a resource.
  • partially-staged - the resource has changes which are added to the index and additionally changes in the working tree that are neither in the index nor in the repository.
  • added - the resource is not yet tracked by but added to the git repository.
  • removed - the resource is staged for removal from the git repository.
  • conflict - a merge conflict exists for the file.
  • assume-valid - the resource has the "assume unchanged" flag. this means that git stops checking the working tree files for possible modifications, so you need to manually unset the bit to tell git when you change the working tree file. this setting can be switched on with the menu action team->assume unchanged (or on the command line with git update-index--assume-unchanged).


in a enabled project the small question mark (?) indicates that your file is not yet added to the svn repository.

the small orange rectangle is an indication that your file is committed in the repository.

an asterisk (*) indicates a local change.


it sounds like you're using subclipse; is that correct? if so, there's a great list of decorators and their descriptions at this answer by tim stone.

here's the relevant snippet for your case:

unversioned file - a file not under version control. these are typically new files that you have not committed to the repository yet.
synchronized file - a file with no local changes.


with some version-control plug-ins, it means that the local file has not yet been shared with the version-control repository. (in my install, this includes plug-ins for cvs and git, but not perforce.)

you can sometimes see a list of these decorations in the plug-in's preferences under team/x/label decorations, where x describes the version-control system.

for example, for cvs, the list looks like this:

enter image description here

these adornments are added to the object icons provided by eclipse. for example, here's a table of icons for the java development environment.

Related Query

More Query from same tag