1. Берём репозиторий

% pwd
/tmp/OpenStreetMap.ru
% ls -A
.git	README	api	other	search	www

2. Добавляем remote для лифлета

% git remote add leaflet git://github.com/CloudMade/Leaflet.git
% git fetch leaflet

3. Немного магии

% git merge -s ours --no-commit leaflet/master
% git read-tree --prefix=x/ -u leaflet/master
% git mv x/dist www/leaflet
% git rm -rf x

Теперь всё готово к коммиту:

% git status
# On branch master
# Changes to be committed:
#
#       new file:   www/leaflet/images/layers.png
#       new file:   www/leaflet/images/marker-shadow.png
#       new file:   www/leaflet/images/marker.png
#       new file:   www/leaflet/images/popup-close.png
#       new file:   www/leaflet/images/zoom-in.png
#       new file:   www/leaflet/images/zoom-out.png
#       new file:   www/leaflet/leaflet.css
#       new file:   www/leaflet/leaflet.ie.css
#       new file:   www/leaflet/leaflet.js
#
% git commit

Just as planned:

% find www/leaflet
www/leaflet
www/leaflet/images
www/leaflet/images/layers.png
www/leaflet/images/marker-shadow.png
www/leaflet/images/marker.png
www/leaflet/images/popup-close.png
www/leaflet/images/zoom-in.png
www/leaflet/images/zoom-out.png
www/leaflet/leaflet.css
www/leaflet/leaflet.ie.css
www/leaflet/leaflet.js

4. Обновление

% git fetch leaflet
% git merge -s recursive -X subtree=dist leaflet/master
Auto-merging www/leaflet/leaflet.css
Merge made by the 'recursive' strategy.
 www/leaflet/leaflet.css |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

PS

Мне лично кажется не особо хорошо что в проект лезет вся история лифлета, поэтому возможно лучше будет обновлять его как-то так:

% git fetch leaflet
% rm -rf www/leaflet
% git checkout leaflet/master dist
% git mv dist www/leaflet
% git commit -m "Update leaflet"

либо ручной заменой исходников, что то же самое. Плюсы subtree проявятся если в leaflet будут локальные изменения (тогда будет удобный merge) либо если понадобится bisect (т.е. можно будет узнать какой конкретно коммит в leaflet что-то нам сломал). Т.к. leaflet со всей историей вмержить никогда не поздно, если перечисленного пока не нужно, я бы лично (пока) ограничился заменой исходников.