메뉴 건너뛰기

프로젝트를 진행하다보면 특별한 모듈을 분리해서 독립적인 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. 1
    01월 06일
    2015

    Git에서 레파지토리의 폴더를 별도의 repository로 분리하는 방법을 알려주세요

    프로젝트를 진행하다보면 특별한 모듈을 분리해서 독립적인 repository로 분리할 필요를 느끼게 됩니다. 아래와 같은 변경을 가하고 싶다고 가정하겠습니다. project/ .git/ module1/ module2/ module3/ --[변경후]--> project/ .git/ module1/ modu...
    ByPSEG Reply1 Views18590
    Read More
  2. 2
    01월 06일
    2015

    Git에서 로컬 브랜치를 이전 커밋으로 되돌리는 방법을 알려주세요

    Git을 이용할 때 가끔 로컬 브랜치의 내용을 이전 커밋 상태로 만들 필요가 생깁니다. 로컬 브랜치를 이전 커밋으로 되돌리는 방법을 알아보겠습니다. 다음과 같은 history를 가질 때 11월 3일 커밋으로 되돌리는 절차를 알아보겠습니다.$ git log commit a867...
    ByPSEG Reply2 Views16026
    Read More
  3. 1
    01월 01일
    2015

    로컬과 리모트의 브랜치 삭제 방법을 알려주세요

    개발하다보면 기능 개발을 위해 브랜치 (branch)를 만들었다가 완료되면 브랜치를 삭제할 일이 자주 생깁니다. 이럴 때 아래의 명령으로 간단히 remote와 local의 branch를 삭제할 수 있습니다. git push origin --delete <branchName> or $ gi...
    ByPSEG Reply1 Views14198
    Read More
  4. 2
    12월 31일
    2014

    Git commit (커밋) 메시지 정정 하는 방법을 알려주세요

    Git push를 했는데, 나중에 메시지에 잘못된 부분을 알게되거나 추가할 내용이 발생하는 경우가 많습니다. 이럴 경우 어떻게 해야 할까요? Step 1) git commit --amend Step 2) 최근 커밋 메시지를 수정할 수 있는 에디터가 열리면 내용을 수...
    ByTerry Reply2 Views20170
    Read More
  5. 2
    12월 31일
    2014

    Git에서 삭제된 commit 내용 복구하는 방법을 알고 싶습니다

    git reset --hard HEAD~1 과 같은 동작으로 최근 commit 했던 정보가 삭제되었을 때 이를 복구하는 방법을 공유 드립니다. git checkout -b 새로운_브랜치_이름 commit_했던_sha_number
    ByPSEG Reply2 Views14655
    Read More
  6. 2
    12월 31일
    2014

    Git에 마지막으로 commit한 변경사항을 취소 (undo) 하는 방법을 알고싶어요

    Git에서 undo 하는 것은 불편하기 이를데 없습니다. 하지만 개념만 이해한다면 매우 쉽습니다. Workspace 상태 (F) A-B-C ↑ master C commit을 제거하고 싶을 때 (local에서도 C 내용이 사라지게 되기 때문에 주의!) git reset --hard HEAD~1 ...
    ByPSEG Reply2 Views12088
    Read More
  7. 1
    12월 30일
    2014

    git review 명령 실행시 missing Change-Id in commit message footer 발생

    git review 명령 실행시 To ssh://user@gerrit.choi.co.kr:29418/TestProject.git ! [remote rejected] HEAD -> refs/publish/master (missing Change-Id in commit message footer) error: failed to push some refs to 'ssh://user@gerrit.choi.co.kr:2...
    By번즈 Reply1 Views24306
    Read More
  8. 1
    12월 27일
    2014

    UML 도구 추천요.

    UML 도구 어떤것이 좋을까요? 나름 UML이나 모델링 도구에 관심이 많은데 분석/설계 쪽 카테고리는 질의가 없네요. 혼자 그동안 알고 있던 UML 도구에 대해 짧게 정리해봅니다. 유료도구 IBM Rational Software Architect : 일반적으로 웹 프로젝트...
    ByPSEG Reply1 Views18237
    Read More
  9. 1
    12월 27일
    2014

    빌드관리 요즘 어떤거 사용하세요?

    야심한 새벽 잠이 오지 않아 여기저기 글을 올립니다. 모두들 빌드 관리 도구 어떤것 쓰시나요? Jenkins가 여전히 대세인가요? :)
    ByPSEG Reply1 Views9311
    Read More
  10. 1
    12월 27일
    2014

    Codeigniter Framework Rewrite_module 설정 관련

    최근 PHP 개발 프로젝트를 진행하면서 codeigniter Framework를 이용하여 개발하고 있습니다. 문제는 현재 CodeIgniter의 주소 체계가 도메인/index.php/하위주소 형태로 좀 길고 보기가 좋지 않습니다. 그래서 도메인/하위주소 형태로 변경할려고 하는데 ...
    ByPSEG Reply1 Views11330
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
/ 12