git 프로젝트의 하위 디렉토리를 복제하는 방법(zip이 아님)
홉 홉 홉, DownGit처럼 ZIP 폴더 다운로드에 대해 말하는 것이 아니라 git clone... 명령을 사용하여 하위 디렉토리만 복제하는 것입니다!
나는 친구로부터 그 질문을 받았고, 그렇게 하기 위해 작고 흥미로운 bash 스크립트를 작성했습니다!
우리는 그것을 2단계로 할 것입니다.
BASH 스크립트 기능 작성
.bashrc
에 다음과 같이 sparse-checkout을 업데이트하는 함수를 작성할 것입니다._git_clone_sub ()
{
REPO_NAME="$(echo $2 | grep -oE '[^/]+$')";
git clone --filter=blob:none --no-checkout $2
cd $REPO_NAME;
git sparse-checkout set --no-cone "$1/*"
if [ -n "$3" ]; then
git pull origin $3;
git checkout $3;
else
git fetch origin;
git checkout main
[[ $? != 0 ]] && git checkout master;
fi
}
이 스크립트는 매우 간단합니다. 다음과 같은 작업을 수행합니다.
main
로 변경할 수 있음). 이제 다음과 같은 하위 디렉토리를 쉽게 복제할 수 있습니다( a
source ~/.bashrc
이후)._git_clone_sub subDir1 https://github.com/auth/repo
또는 지점 이름을 지정하여:
_git_clone_sub subDir1 https://github.com/auth/repo dev-branch
GIT 별칭 작성
지금까지는 좋았지만... 더 잘할 수 있습니다!
다음과 같이
~/.gitconfig
파일에 별칭을 추가하여 git에서 직접 bash 함수를 호출할 수 있습니다.[alias]
clone-sub = !bash -i -c '_git_clone_sub "$@"' -s
그래 그래 잠깐만, 나도 알아, 이상해 보이지만 설명할게... 실제로는 간단해!
먼저 bash 기능을 실행할 것이므로 'bash -c'로 이를 수용합니다. 그런 다음 함수를 호출합니다.
$@
는 별칭 끝에 있는 -s
플래그를 사용하여 얻은 모든 인수를 가져오는 것입니다.즉, 이제 다음을 수행할 수 있습니다.
git clone-sub subDir1 https://github.com/auth/repo
git clone-sub subDir1 https://github.com/auth/repo dev-branch
데모
읽어 주셔서 감사합니다. 좋아요 및/또는 구독을 통해 더 많은 내용을 확인하세요 🐼.
Reference
이 문제에 관하여(git 프로젝트의 하위 디렉토리를 복제하는 방법(zip이 아님)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sanixdarker/how-to-clone-a-sub-directory-of-a-git-project-not-a-zip-1kk7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)