filter-branch --tree-filter 후에 git repo에서 refs / original / heads / master를 제거 하시겠습니까?
여기에 질문 한 것과 같은 질문이 있습니다 :
루트 디렉토리의 새로운 자식 저장소는 하위 디렉토리에 존재하는 저장소를 가정합니다.
나는이 대답을 여기에 따랐다 :
루트 디렉토리의 새로운 자식 저장소는 하위 디렉토리에 존재하는 저장소를 가정합니다.
이제
gitk --all
두 개의 기록을 보여줍니다. 하나는 현재에서 끝나고
master
다른 하나는라는 이름
original/refs/heads/master
입니다.이 두 번째 역사가 무엇인지 또는 저장소에서 제거하는 방법을 모르겠습니다. 내 저장소에 두 개의 이력이 필요하지 않습니다.어떻게 제거합니까?자신을 재현하려면 :
mkdir -p project-root/path/to/module
cd project-root/path/to/module
mkdir dir1 dir2 dir3
for dir in * ; do touch $dir/source-file-$dir.py ; done
git init
git add .
git commit -m 'Initial commit'
이제 원래 포스터의 문제가 있습니다. 위의 답변을 사용하여 git repo의 루트를 project-root로 이동합시다.
git filter-branch --tree-filter 'mkdir -p path/to/module ; git mv dir1 dir2 dir3 path/to/module' HEAD
rm -rf path
cd ../../../ # Now PWD is project-root
mv path/to/module/.git .
git reset --hard
이제 내 현재 문제를 참조하십시오.
gitk --all &
git show-ref
refs/original/heads/master
모든 관련 기록을 제거하려면 어떻게해야 합니까?
refs/original/*
필터 브랜치를 엉망으로 만들 경우를 대비하여 백업이 있습니까? 날 믿어,
정말
좋은 생각 이야 .결과를 검사하고 원하는 것을 확신하면 백업 된 참조를 제거 할 수 있습니다.
git update-ref -d refs/original/refs/heads/master
또는 여러 심판 에게이 작업을 수행하고 모두 지우려면 다음을 수행하십시오.
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
(필터 브랜치 맨 페이지에서 직접 가져 왔습니다.)이것은 당신에게 적용되지 않지만, 이것을 찾을 수있는 다른 사람들에게 : 디스크 공간을 많이 차지하는 컨텐츠 를
제거
하는 필터 브랜치를 수행하는 경우 , 참조 로그 를 실행
git reflog expire --expire=now --all
하고
git gc --prune=now
만료하고 현재 사용하지 않는 객체를 삭제할 수도 있습니다 . (경고 : 완전히 돌이킬 수 없음. 그렇게하기 전에 반드시 확인하십시오.)
Windows PowerShell을 사용하는 경우 :
git for-each-ref --format="%(refname)" refs/original/ | foreach-object -process { git update-ref -d $_ }
filter-branch
리포지토리가 참조 로그 및 가비지 수집을 정리해야하므로 백업을 유지합니다. 삭제하기 전에이 백업이 필요하지 않은지 확인하십시오.
rm -Rf .git/refs/original
git gc --aggressive --prune=now
참고 URL :
'programing' 카테고리의 다른 글
Eclipse에서 보이지 않는 공백 문자 표시 (0) | 2020.06.02 |
---|---|
양방향 바인딩이란 무엇입니까? (0) | 2020.06.02 |
두 개의 Java 8 스트림 또는 추가 요소를 스트림에 추가 (0) | 2020.06.02 |
장치 픽셀 비율은 정확히 무엇입니까? (0) | 2020.06.02 |
현재 디렉토리가 Git 저장소인지 확인 (0) | 2020.06.02 |