git subtree
サブツリーの追加
$ git subtree add --prefix=path/to/dir <repo_name> <branch_name>
例
git subtree add --prefix=path/to/dir origin gh-pages
サブツリーへのプッシュ
$ git subtree push --prefix=path/to/dir <repo_name> <branch_name>
gh_pages の例
git subtree push --prefix public/ origin gh-pages
cookbooks/build-essential を pull する例
$ git pull --squash -s subtree build-essential master
以下のやり方だとエラーになって失敗した
--squash 抜いてみたら conflict 発生してより面倒なことになった
$ git subtree pull --prefix=cookbooks/build-essential build-essential master --squash
git subtree