Child pages
  • git 하위 디렉터리, 폴더만 클론(clone) 하기

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

다른 서버에서 이 프로젝트의 sys-script  하위 폴더, user-script/user1과 하위 폴더만  필요하다. 기본적으로 clone 하면 모든 폴더가 복제되지만 git 1.7부터 추가된 sparse checkout 이라는 기능을 사용하면 원하는 경로의 디렉터리나 파일만 복제할 수 있다.

 


  1. sparse Checkout 이 가능하도록 설정한다.

    Code Block
    git config core.sparseCheckout true
  2. clone 할 로컬 저장소를 만든다.

    Code Block
    languagebash
    git init my-proj
    cd my-proj
  3. sparse Checkout 이 가능하도록 설정한다.

    Code Block
    git config core.sparseCheckout true
  4. remote 를 추가한다.

    Code Block
    languagebash
    git remote add -f origin <REMOTE_URL>
  5. checkout 하기 원하는 파일이나 폴더를 .git/info/sparse-checkout 파일에 기술하면 된다. 폴더일 경우 자동으로 하위 폴더가 포함된다.

    Code Block
    languagebash
    echo "script/sys-script" >> .git/info/sparse-checkout
    echo "script/user-script/user1" >> .git/info/sparse-checkout
  6. 이제 pull 로 원격 저장소에서 파일을 가져오면 sparse-checkout 에 기술한 경로의 파일만 가져온다.

    Code Block
    languagebash
    git pull origin master

...