git 저장소를 옮길 때 branch, commit 모두 옮기는 방법이다.
1. 다운 받고 싶은 git 저장소를 얻는다. (git 디렉토리를 보면 일반적으로 git clone한 것과 다르다. git의 메타 데이터를 읽는다)
$ git clone --bare https://github.com/knight76/ansiblebook
$ cd ansiblebook.git
$ ls -al
drwxr-xr-x 11 samuel.kim staff 352 Jun 23 18:20 .
drwxr-xr-x 28 samuel.kim staff 896 Jun 23 18:20 ..
-rw-r--r-- 1 samuel.kim staff 23 Jun 23 18:20 HEAD
drwxr-xr-x 2 samuel.kim staff 64 Jun 23 18:20 branches
-rw-r--r-- 1 samuel.kim staff 176 Jun 23 18:20 config
-rw-r--r-- 1 samuel.kim staff 73 Jun 23 18:20 description
drwxr-xr-x 13 samuel.kim staff 416 Jun 23 18:20 hooks
drwxr-xr-x 3 samuel.kim staff 96 Jun 23 18:20 info
drwxr-xr-x 4 samuel.kim staff 128 Jun 23 18:20 objects
-rw-r--r-- 1 samuel.kim staff 479 Jun 23 18:20 packed-refs
drwxr-xr-x 4 samuel.kim staff 128 Jun 23 18:20 refs
2. Organization와 저장소를 생성한다.
3. bare clone 한 디렉토리에서 새로 생성한 저장소에 mirror push를 수행 한다
git push --mirror https://github.com/knight76/new_ansiblebook.git