It is often useful to associate reference material with an outline node/task.
Small chunks of plain text can simply be stored in the subtree of a project.
Hyperlinks (see Hyperlinks) can establish associations with
files that live elsewhere on your computer or in the cloud, like emails or
source code files belonging to a project. Another method is attachments,
which are files located in a directory belonging to an outline node. Org
uses directories named by the unique ID of each entry. These directories are
located in the data directory which lives in the same directory where
your Org file lives1. If you initialize this directory with
git init, Org will automatically commit changes when it sees them.
The attachment system has been contributed to Org by John Wiegley.
In cases where it seems better to do so, you can also attach a directory of your choice to an entry. You can also make children inherit the attachment directory from a parent, so that an entire subtree uses the same attached directory.
The following commands deal with attachments:
org-attach-method. Note that hard links are not supported on all systems.
org-file-apps. For more details, see the information on following hyperlinks (see Handling links).
ATTACH_DIR_INHERITproperty, so that children will use the same directory for attachments as the parent does.
 If you move entries or Org files from one
directory to another, you may want to configure
to contain an absolute path.