基本的には、以下のサイトを参考にした。
CakePHPのcore部分をgit submodule化してgithubで管理する - JavaScriptとかPerlとかPHPとかさくらVPSとか勉強する

一応流れを書いておく。

cakephpをクローンする

$ git clone git://github.com/cakephp/cakephp.git project
$ cd project

不要なディレクトリの削除&gitディレクトリの作り直し

$ rm -r .git
$ rm -r lib
$ git init

cakephpをsubmoduleで追加

$ git submodule add git://github.com/cakephp/cakephp.git
$ git submodule update --init

app/webroot/index.phpを編集

- define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');
+ define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'cakephp' . DS . 'lib');

app/webroot/test.phpを編集

- define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');
+ define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'cakephp' . DS . 'lib');

app/Console/cake.phpを編集

⋮
$ds = DIRECTORY_SEPARATOR;
$dispatcher = 'Cake' . $ds . 'Console' . $ds . 'ShellDispatcher.php';

  if (function_exists('ini_set')) {
      $root = dirname(dirname(dirname(__FILE__)));
+     //  for managing cakephp's core-code by git-submodule
-     ini_set('include_path', $root . $ds. 'lib' . PATH_SEPARATOR . ini_get('include_path'));
+     ini_set('include_path', $root . $ds . 'cakephp' . $ds . 'lib' . PATH_SEPARATOR . ini_get('include_path'));
  }
⋮
...
+ // for managing cakephp's core-code by git-submodule
+ $idx = array_search('-app', $argv);
+ if ($idx === false) {
+     $argv[] = '-app';
+     $argv[] =  $root . $ds . 'app';
+ }

  unset($paths, $path, $dispatcher, $root, $ds);

  return ShellDispatcher::run($argv);

変更をcommit

$ git add .
$ git commit -m 'Initial commit'

大まかにはリンク先と異なるところは、app/Console/cake.phpを触っているところかな?
上のように修正すれば、わざわざcakephp/lib/Cake/Console/cake.phpを実行しなくてもいいし、パラメータも設定しなくてもいいので、スッキリします。
例えばbakeする場合はこんな感じ。

$ php cakephp/lib/Cake/Console/cake.php -app ../app bake

$ php app/Console/cake.php bake

よりドキュメント通りに動くほうが良いと思うので、こっちの方がいいんじゃないかな?
CakePHP2.x系からはConsole部分もappディレクトリ内に出来たので、こうやって気楽にカスタマイズ出来るのが素敵だわー。