Git 저장소에서 일부 텍스트 추출 후 3일

3148 단어 GitGitHub

입문


이것은 내가 어떤 자료 라이브러리를 번역하기 위해 반복적으로 시도한 결과이다.이걸 보시고 시체를 넘어서...

Git에 엉망진창인 내용.


하고 싶은 일


CommonMark README 포함md 외에 spec.txt라는 CommonMark의 규격서도 넣었다.번역하고 싶은데 여기에 다른 서류가 있어서 전부 Clone이 귀찮은 것 같아요.그래서 README.데이터 라이브러리에서md와spec.txt만 끌어와github로 번역 대상을 관리합니다.기회가 된다면 나도 이후의 업데이트를 따라가고 싶다.하고 싶어.
환경
Windows 10
git version 2.13.1.windows.2

Take away


sparse-checkout은 이 용도에 적합하지 않습니다.Filter-branch에서만 노력할 수 있습니다.

한 일


sparse-checkout


Git에서 다른 저장소에서 일부 파일만 저장하는 방법.응,sparse-checkout 있어?
일단 해볼게요.조사는 대부분 클론이었지만웹 사이트 축소 이미지 처음부터 일부를 추출하는 방법으로 했기 때문에 이를 따랐다.
git init
git config.sparsecheckout true
git remote commonmark https://github.com/commonmark/CommonMark.git
echo "README.md" > .\.git\info\sparse-checkout
echo "spec.txt" >> .\.git\info\sparse-checkout
git pull commonmark master
오, 다 됐어요.두 개밖에 안 넣었네.

이push를github로 관리하면 완벽해요.하지만...

현실은 결코 낙관적이지 않다.sparse-checkout은 일부 checkout을 작업 디렉터리로 출력하는 기능이기 때문에 지점에 모든 파일을 보존합니다.이것은 단지 일부 거대한 자료 라이브러리를 편집하고 싶을 때의 기능이죠.하지만 이렇게 되면 이번에는 의미가 없다.나는 일부분을 남겨 그것을 완전히 사라지게 하고 싶다.

filter-branch


왠지 Filter-branch가 그런 일을 할 수 있을 것 같아.항간에서는 최상의 옵션라고 불린다고 한다.강하다그러나 조사를 해봤자'특정 문건만 배제'는 간단하지만'특정 문건만 남기기'는 생각지도 못한 것 같다.하위 디렉터리는 가능합니다.rm로 든든하게 제거할 수 밖에 없어요.
git filter-branch --tree-filter 'rm -f 消したいファイルとか' -f HEAD

중요한 서류가 불타는 게 오히려 그런 기분이겠지.
CommonMark의 역사는 매우 오래되어 목욕을 하고 빨래를 다 하지 못했다.그리고 rm의 사용 방법이 잘못되었습니다.fatal error로 두 번 정지했습니다.

이번에 푸시를 무사히 마쳤습니다.제출 트리가 여전히 있습니다.

결론


서류가 2, 3개밖에 없어서 수동으로 가져오는 것이 비교적 빠르다.

좋은 웹페이지 즐겨찾기