나는 Git에 대규모 저장소가있다. Jenkins에서 프로젝트의 하위 폴더 하나만 체크 아웃하는 작업을 어떻게 만듭니 까?Jenkins와 Git 희박 체크 아웃
답변
Jenkins Git Plugin 지원 희귀 체크 아웃 git-plugin 2.1.0 (2014 년 4 월) 이후 이 기능을 사용하려면 git> = 1.7.0이 필요합니다. '추가 동작'-> '스파 스 체크 아웃 경로'에 있습니다.
참조 : 락스 문제 JENKINS-21809
불행히도 Git은 전체 저장소를 로컬로 복사해야합니다. Git이 서버에서 파일을 가져 오는 속도가 향상되지 않을 수도 있습니다. – luka5z
불행히도 원래의 "경로 구조"를 그대로 유지하면서 실제로 "하나의 디렉토리"를 체크 아웃하는 것 같지는 않습니다. FWIW – rogerdpack
꽤나 오래되었지만 어떻게 정의 할 것인가? 공간이있는 서브 디렉토리 이름. 체크 아웃 "폴더/to/include/directory withSpace"로 지정하고 싶습니다. – OK999
자식의 sparse checkout 기능을 사용할 수 있습니다. Git은 여전히 전체 저장소를 로컬 디스크에 복제합니다. 그러나 압축되어 있기 때문에 그리 나쁘지 않습니다.
- 젠킨스에서 새 작업을 생성하려면 소스 코드 관리 섹션에서 Git 저장소를 설정하십시오.
- 프로젝트를 빌드하십시오. 이렇게하면 전체 저장소가 로컬 디스크에 복제됩니다.
- 프로젝트의 작업 영역 폴더를 열고 .git 폴더를 제외한 모든 파일을 삭제하십시오.
프로젝트의 작업 영역 폴더 용 Git 셸을 엽니 다. 스파 스 체크 아웃을 사용 :
git config core.sparsecheckout true
업데이트 작업 트리 :
git read-tree -mu HEAD
는 .git/정보 폴더에
sparse-checkout
파일을 만듭니다. 당신과 같이 해당 파일을 체크 아웃 할 하위 폴더 (주 후행 슬래시)에 경로를 추가 :folder/to/include/
- 프로젝트를 다시 빌드합니다. 이번에는 하나의 하위 폴더 만 작업 영역 폴더에 나타납니다.
모든 작업에 대해 이러한 명령을 실행해야합니까? –
@RuudLenders 예, 하나의 하위 폴더 만 체크 아웃하려는 모든 작업에 대해이 작업을 수행해야합니다. –
5 단계 'git read-tree -mu HEAD'는 6 단계를 수행해야합니까? 내가 할 수있는 한, 먼저 Git에게 어떤 파일을보아야하는지 (단계 6), 트리 정보를 색인으로 읽어 들여야한다. – borisdiakur
당신은
git checkout your-branch -- the/desired/path anthother/desired/path
당신이 할 수 단지 rm -rf
작업 폴더를 삭제하려면 사용 mkdir workingdir
으로 다시 것입니다 사용자 정의 단계를 가질 수있다. 이것은 위의 명령의 자식 수준에서이 옵션을 지정할 필요 :
git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path
이 모든
는 젠킨스을 알고 얼마나 잘에 따라 달라집니다.문제는 Jenkins가 일반적으로 플러그인을 사용하여 소스 코드를 가져오고 Git 플러그인을 사용하여 체크 아웃 명령을 변경할 수 없다는 것입니다. –
필자는 기존 플러그인을 작성하거나 수정하는 것이 너무 많은 문제가 될 것이라고 생각합니다. –
- 1. Jenkins와 git
- 2. heroku의 Git 체크 아웃
- 3. 체크 아웃 방법 .git
- 4. 리모컨에서 git 체크 아웃
- 5. 모든 git 태그를 체크 아웃
- 6. Git 태그 - 체크 아웃 문제
- 7. git 저장소에서 maven 프로젝트 체크 아웃
- 8. git gui에서 파일의 체크 아웃 수정
- 9. Git-svn 병합 및 체크 아웃 -theirs
- 10. Git 원격 저장소 체크 아웃 문제
- 11. 커밋 순서에 의한 Git 체크 아웃
- 12. 테스트를 추적 할 때 Git 체크 아웃
- 13. 몇 가지 리모컨으로 Git 체크 아웃
- 14. Git 1.7.0의 스파 스 체크 아웃?
- 15. "git describe"의 출력에서 GIT 체크 아웃 코드
- 16. 수신 후크에서 Git 체크 아웃 : "Git 저장소가 아닙니다." "
- 17. 원격 지점으로 체크 아웃
- 18. 희박 컨트롤러
- 19. 체크 아웃 내에서 SVN 체크 아웃
- 20. 체크 아웃
- 21. github에서 특정 분기 체크 아웃
- 22. Spree - 체크 아웃 국가 선택 해제 및 체크 아웃 수정
- 23. 자식 - svn을 체크 아웃 특색
- 24. github에서 안드로이드 소스 체크 아웃
- 25. 자식 - svn의도 깨끗하고 체크 아웃
- 26. 망할 놈의 체크 아웃 오류
- 27. 힘내 - 체크 아웃 분기 - 병합
- 28. git 체크 아웃 파일 이름이 마지막 커밋으로 되돌아 왔습니다.
- 29. Git Process : 체크인/체크 아웃 절차에 대해 설명해 주시겠습니까?
- 30. 체크 아웃 특정 맨끝에서 원격 지점 맨 [rep] [git]
는 그 복잡성을 추가하는 정말 필요합니까? 처음 저장소가 복제되면 git은 새로운 객체를 가져옵니다. 젠킨스 서버에 충분한 스토리지가 부족한 경우가 아니라면 모든 것을 복제하고 복잡성을 피할 수 있습니다. – wadesworld