메뉴 건너뛰기

프로젝트를 진행하다보면 특별한 모듈을 분리해서 독립적인 repository로 분리할 필요를 느끼게 됩니다.


아래와 같은 변경을 가하고 싶다고 가정하겠습니다.

project/
    .git/
    module1/
    module2/
    module3/

--[변경후]-->
project/
    .git/
    module1/
    module2/

project_module3/
    .git/
    module3/


Step 1) local clone

레파지토리가 hard-links된 상태로 clone 됩니다.

git clone /project /project_module3

Step 2) 불필요한 branch 제거

cd /project_module3
for br in branch1 branch2 branch3; do git branch -t $br origin/$br; done
#모든 branch들을 제거하려면, 
#for br in $(git branch -r | sed "s/.*origin\///"); do git branch -t $br origin/$i; donegit remote rm origin
git remote rm origin


Step 3) 불필요한 tag 제거

tag -l | xargs git tag -d


Step 4) filter-branch 명령으로 불필요한 파일 제거 (empty commit 도 함께 제거)

git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter project -- --all


Step 5) HEAD reset, 스토리지 공간 절약을 위해 reflogs backup 파일 삭제

git reset --hard
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
git reflog expire --expire=now --all
git gc --aggressive --prune=now

project_module3는 변경 이력은 유지되면서 불필요한 log가 제거된 local git repository가 되었습니다.



TAG •

Who's PSEG

profile

PSEG는 Practical Software Engineering Group의 약자입니다. 

이론을 넘어 실용적으로 활용할 수 있는 소프트웨어 공학을 공유하는게 그룹의 목적입니다.

?
Comment '1'
  • profile
    Tom 2015.08.21 22:35
    Git이 미숙해서 잘 이해는 되지 않지만, 유용한 내용인거 같아요.

 


  1. 2
    08월 24일
    2015

    Bitnami Redmine 테마 변경 관련

    아래 게시물을 보고 Redmine 테마를 변경할려고 하는데.. http://pseg.or.kr/pseg/infouse/3070 본문에 나와있는 아래 링크에 themes 라는 폴더가 없습니다. Redmine 설치 폴더 > public > themes Bitnami 버전은 다른 경로에 있는 듯 한데.. ...
    ByTom Reply2 Views11554
    Read More
  2. 5
    08월 22일
    2015

    bitnami redmin 설치 시, Gmail 메일 설정 문제

    bitnami redmine 3.1 설치 시, gmail 계정을 입력하였는데 메일이 오지 않습니다. 어디를 살펴봐야할지 도움 부탁드립니다.
    ByTom Reply5 Views15573
    Read More
  3. 1
    08월 21일
    2015

    bitnami redmine 3.1 SVN Server 저장소 생성 방법

    bitnami redmine 3.1 설치 시, 제공되는 SVN Server를 함께 설치 하였습니다. 해당 SVN 서버를 이용하여 Redmine과 연동하고 싶은데, SVN 설정을 Visual하게 해주는 도구는 따로 없는것 같네요. 혹시 특정 위치에 Repo 생성하고 등록하는 방법을 알려주시...
    ByTom Reply1 Views14235
    Read More
  4. 1
    08월 21일
    2015

    bitnami redmine 3.1 관리자 패스워드 분실

    bitnami redmine 3.1 설치 시 입력하는 관리자 패스워드를 분실했습니다. 혹시 변경이나 찾을 수 있는 방법이 있을까요?
    ByTom Reply1 Views17574
    Read More
  5. 1
    08월 12일
    2015

    bitnami-redmine 3.1 설치 오류

    production.log bitnami- redmine 3.1을 설치 했다가, uninstall.exe로 삭제 후 재부팅. 재설치 하였습니다. http://localhost/redmine/입력시 아래와 같은 메세지가.. ㅠ_ㅠ) Internal errorAn error occurred on the page you were trying to access...
    ByAREA88 Reply1 Views13651 file
    Read More
  6. 1
    06월 22일
    2015

    gerrit 설치중에 apache 서버 실행이 안됩니다.

    문서에 Gerrit 설치하는걸 해보고 있는데요 아래와 같이 apache 서버 실행시 에러가 발생하고 있습니다. 현재 윈도우에 vmware로 유분투 설치해서 사용중입니다. apache2: Could not reliably determine the server's fully qualified domain name, usi...
    By뿡사랑 Reply1 Views9224
    Read More
  7. 8
    02월 11일
    2015

    Gerrit 설치 및 초기셋팅문제

    안녕하십니까  Windows2008 Server + Git   서버에  Gerrit 환경을 구축중입니다. Gerrit + postgresql + Tomcat에 얹어서 Gerrit 페이지를 띄우는데까지는 성공했으나 로그인 화면이 뜨지않아 http://pseg.or.kr/pseg/infoinstall/1802 링크를 보...
    Byinval Reply8 Views18416
    Read More
  8. 3
    02월 09일
    2015

    redmine 관련 devkit 설치 시 오류가 납니다...

    redmine 설치를 위해 devkit 설치 진행 중 하기와 같은 오류가 납니다. C:\devkit\bin>ruby dk.rb init ruby : No such file or directory -- dk.rb<LoadError> 도와주세요..ㅠ
    Byjihye Reply3 Views11974
    Read More
  9. 1
    01월 20일
    2015

    여러개의 원격 저장소를 로컬에서 트랙킹하는 방법이 있나요?

    여러개의 원격 저장소를 로컬에서 트랙킹하는 방법이 있나요? Git remote 명령을 이용하면 되겠습니다. Step 1) 원격 저장소 클론하기 $ git clone git://example.com/project $ cd project Step 2) 원격 브랜치들 확인하기 $ git branc...
    ByPSEG Reply1 Views12815
    Read More
  10. 3
    01월 20일
    2015

    원격 (Remote)의 모든 브랜치를 클론 하는 방법을 알고 싶습니다.

    원격 (Remote)의 모든 브랜치를 클론 하는 방법을 알고 싶습니다. Step 1) 프로젝트 클론하기 $ git clone git://example.com/project $ cd project Step 2) 로컬 브랜치들 확인 $ git branch * master Step 3) 숨겨진 브랜치 확인 하기 ...
    ByPSEG Reply3 Views12068
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
/ 12