filter-branch --tree-filter 뒤에 gitrepo에서 refs/original/heads/master를 제거하시겠습니까?
여기서 질문한 것과 같은 질문이 있었습니다.하위 디렉터리에 기존 리포지토리를 추가하기 위한 루트 디렉터리의 새 git 리포지토리
저는 여기서 다음과 같은 대답을 했습니다.하위 디렉터리에 기존 리포지토리를 추가하기 위한 루트 디렉터리의 새 git 리포지토리
지금이다,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'
이제 우리는 원래 포스터의 문제를 가지고 있습니다.위에 링크된 답변을 사용하여 gitrepo의 루트를 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
reflog를 만료하고 현재 사용되지 않는 개체를 삭제합니다. (경고: 완전히, 완전히 되돌릴 수 없습니다.)이 작업을 수행하기 전에 반드시 확인해야 합니다.)
Windows PowerShell을 사용하는 경우:
git for-each-ref --format="%(refname)" refs/original/ | foreach-object -process { git update-ref -d $_ }
filter-branch
저장소에서 reflog를 정리하고 가비지 수집을 수행할 수 있도록 백업을 보관합니다.삭제하기 전에 이 백업에 이 필요가 없는지 확인하십시오.
rm -Rf .git/refs/original
git gc --aggressive --prune=now
언급URL : https://stackoverflow.com/questions/7654822/remove-refs-original-heads-master-from-git-repo-after-filter-branch-tree-filte
'IT' 카테고리의 다른 글
sql server 2005에서 데이터 손실 없이 테이블의 "스키마"를 변경하려면 어떻게 해야 합니까? (0) | 2023.06.22 |
---|---|
여러 Excel 열의 데이터를 모두 하나의 열로 통합하는 방법 (0) | 2023.06.22 |
Firebase 2.0 - 안드로이드 앱의 여러 가지 맛(환경)을 다루는 방법은 무엇입니까? (0) | 2023.06.22 |
C에서 char 배열에서 메모리를 해제하는 방법 (0) | 2023.06.22 |
'long long'의 형식 지정 (0) | 2023.06.22 |