[Git] git repository 하위의 특정 경로만 clone & push
git을 사용하면서 하나의 repository에 여러 하위 폴더들이 각각 업무에 맞게 사용하는것들이 있다. 그래서 자신의 맞는 업무의 경로(폴더)만 가져오고 push까지 하는 방법을 쓴다.
처음자신의 Local Repository로 가져오기
이 방법은 이미 clone한 프로젝트의 특정 경로 또는 파일만 가져오는게 아니라 처음부터 특정경로를 가져오는 방법이다.
1. git 초기화
git init
- 아직 초기상태의 로컬 디렉토리인 .git이 생성 된다.
- 폴더가 숨긴폴더로 보이지 않을 수 있다.
이때는 윈도우에서는 숨김폴더 보기를 하면 보이고 리눅스에서는 ls -a 명령어를 통해 확인 할수 있다.
2. remote repository 연결
git remote add origin <"remote할 저장소.git">
이 방법은 이미 clone한 프로젝트의 특정 경로 또는 파일만 가져오는게 아니라 처음부터 특정경로를 가져오는 방법이다.
git init
이때는 윈도우에서는 숨김폴더 보기를 하면 보이고 리눅스에서는 ls -a 명령어를 통해 확인 할수 있다.
git remote add origin <"remote할 저장소.git">
3. ★ git sparse cheakout 활성
git config core.sparsecheckout true
- sparse cheakout은 repository에의 특정 디렉토리 또는 파일만 보이도록 체크아웃하는 기능입니다.
4. 하위 경로 clone 위한 경로 설정
echo "해당경로" > .git/info/sparse-checkout
- 해당경로를 넣는부분에 ""(큰따옴표)를 넣으면 pull이 안된다는 말도 있지만 제가 했을 때는 pull이 가능했습니다.
- 💡해당경로를 가져올때 주의 점
만약 vscode의 git의 원하는 경로를 가져오겠다 하면 주소창에 https://github.com/microsoft/vscode/tree/main/scripts 있는 뒷부분 경로를 넣어주어야 하는데(/vscode/tree/main/scripts) 이부분에 tree/main/ 부분이 포함되어 있으므로 그대로 하면 에러가 당연하게 난다.
그러므로 "vscode/scrips"식으로 넣어 주면 된다.
5. pull 받기
git pull otigin master
- 위 부터 차례로 pull 하면 해당 경로만 가져오는 것을 확인 할 수 있다.
- 위 방법은 master로 했는데 branch로 설정을 하려면 https://eventhorizon.tistory.com/20 이 블로그를 참고 하시면 됩니다.
git push
sparse checkout을 통해 clone시에는 push가 정상 대로 안된다는 글이 있었는데 본인에 경우에는 기존 push 하는 방법과 마찬 가지로 했을 시 push가 가능했다.
만약 안된다면 https://bitlog.tistory.com/132 👈이 블로그를 참조!
1. staging 영역 추가
git add .
# or
git add -A
- 현재 디렉토리에 있는 업데이트 된 파일을 전 부 스테징 영역으로 추가(특정 파일만도 가능)
git status
- 현재 git의 활동 상황을 확인 할 수 있다.
2. commit
git commit -m "code update"
- -m은 메세지 약자로 따옴표 안에 해당 push 내용을 넣어 주면 된다.
3. repository push
sparse checkout을 통해 clone시에는 push가 정상 대로 안된다는 글이 있었는데 본인에 경우에는 기존 push 하는 방법과 마찬 가지로 했을 시 push가 가능했다.
만약 안된다면 https://bitlog.tistory.com/132 👈이 블로그를 참조!
git add .
# or
git add -A
git status
git commit -m "code update"
원격 저장소가 연결이 안되어 있다면 아래와 같이 remote를 해줘야 한다. 되어 있다면 pass!
git remote add origin <git 주소>
Push
git push origin master
-
remote 했던 origin(다른 이름으로 했어도 무방)에 master 브런치에 push.
-
여러명에서 협업 중이고 충돌에 대비해 브런치를 쓰는게 일반적이고 보통이지만 그럴 일이 없다면 보통 master를 사용
-
브런치 사용시 push
# 브런치 변경(이전에 브런치를 생성했다는 기준!) git branch -M <브런치 이름> # push git push origin <브런치 이름>
Todo
- 프로젝트 진행 중 소스들을 수정 중에 같은 파일 변경 사항을 clone 받아야 할 경우
git stash를 사용하는데 추후 다른 게시물로 올리겠음.
- 이 외 git 명령어 등을 올려야 겠음.
git stash를 사용하는데 추후 다른 게시물로 올리겠음.
참조 : https://velog.io/@byjihye/git-clone
참조 : https://eventhorizon.tistory.com/20
참조 : https://bitlog.tistory.com/132
Author And Source
이 문제에 관하여([Git] git repository 하위의 특정 경로만 clone & push), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@deadkim/Git-git-repository-하위의-특정-경로만-clone-push저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)