MSA 인텔리제이로 프론트엔드, 백엔드 동시에 로컬에서 각각의 인텔리제이 인스턴스로 작업시 브랜치 공유되어 작업하기 곤란한 사항
백엔드만 작업하다가
프론트엔드까지 react로 작업하려고
프론트 초기 버전까지
나의 github에 커밋까지 하였는데
오늘 더 작업 하려고 보니
이상하게 다른 작업한 것이 없는데
백엔드(자바) 부분이 서버가 작동을 하지 않았다
이상하게 생각하다가 브랜치가 react(가칭)로 되어 있었다.
다른 것로 바꿔도 react 프론트랑 java 백엔드 부분 인텔리제이가 브랜치가 공유되고 있어서
두개를 동시에 작업 할 순 없었다.
서버를 인텔리제이를 통하지 않고 띄우는 방법이야 있겠지만
앞으로도 위해서 프론트엔드 부분과 백엔드 부분을 동시에
뛰우는 것이 여러모로 필요하였다.
구글링과 챗티피티를 이용해서 알아보다가
Git WorkTree라는 것이 있다는 것을 알게 되었다.
역시 개발자 분들은 대단한 것 같다.
100%는 아니더라도 99.99%까지는 찾아보거나 생각하거나 고민하면
다 해결되는 것 같다.
0.00% 는 만약의 경우를 위해서 남겨둔 거지 100%일 수도 있다.
아래는 챗GPT의 답변이다.
Git Worktree
Git Worktree는 Git 버전 2.5 이상에서 도입된 기능으로, 하나의 Git 저장소(repository)에서 여러 작업 디렉토리(worktree)를 관리할 수 있게 해주는 매우 유용한 도구입니다. 이를 통해 하나의 저장소에서 여러 브랜치를 동시에 다른 디렉토리에서 작업할 수 있게 되어, 병렬 개발 작업을 효율적으로 수행할 수 있습니다.
Git Worktree의 주요 특징
- 병렬 작업 가능: Git Worktree를 사용하면, 하나의 저장소에 대해 여러 작업 디렉토리를 만들 수 있으며, 각각의 디렉토리는 다른 브랜치에 체크아웃 될 수 있습니다. 이는 동시에 여러 기능을 개발하거나, 하나의 기능에 집중하면서 동시에 다른 브랜치에서의 버그 수정 작업을 수행할 수 있게 해줍니다.
- 자원 효율적 사용: Git Worktree를 사용하면, 각 작업 디렉토리는 .git 디렉토리를 공유합니다. 즉, 각 작업 디렉토리는 별도의 Git 저장소처럼 동작하지만, 실제로는 저장소의 데이터를 공유하기 때문에 디스크 공간을 절약할 수 있습니다.
- 쉬운 컨텍스트 전환: 다른 브랜치로의 체크아웃 없이도, 다른 작업 디렉토리로 바로 전환하여 작업할 수 있습니다. 이는 특히 브랜치 간의 컨텍스트 전환 시간을 절약하고, 작업 흐름을 더욱 원활하게 만들어 줍니다.
Git Worktree 사용 예제
- 새로운 Worktree 추가하기:
여기서 <path-to-new-worktree>는 새로운 작업 디렉토리의 경로이며, <branch>는 해당 디렉토리에서 작업할 브랜치입니다.git worktree add <path-to-new-worktree> <branch> - 기존 저장소에 새로운 Worktree를 추가하고 싶다면, 다음과 같은 명령을 사용할 수 있습니다.
- Worktree 목록 확인하기:
git worktree list - 현재 저장소에 설정된 모든 Worktree를 확인하려면 다음 명령을 사용합니다.
- Worktree 제거하기:
git worktree prune - 더 이상 필요하지 않은 Worktree를 제거하려면, 해당 디렉토리를 단순히 삭제하면 됩니다. 그리고 다음 명령을 통해 Git의 Worktree 목록에서도 해당 디렉토리를 제거합니다.
Git Worktree는 특히 여러 브랜치에서 동시에 작업해야 하는 경우, 개발자의 작업 흐름을 효과적으로 지원하는 강력한 기능입니다.
설명에 의하면
Git Worktree을 이용하면 MSA라도 브랜치와 디렉토리를 연결하기 때문에
다른 브랜치면 다른 디렉토리(MSA, 백이나 프론트 디렉토리)를 각 포인트로 관리하도록 설정하기 때문에
다른 인텔리제이 인스턴스로 새창으로 열기를 하면 공유 되지 않고(Worktree를 설정했기에) 다른 브랜치를 각각(각 브랜치에 맞는 디렉토리)로 열 수 있다고 한다.
맞는 지는 계속 진행하면 끝이 안날 것 같기도 하고
밤이 다소 늦어서 내일확인해보기로 하고
오늘은 여기까지 하고 내일이나 다음에 이어서 해야 겠다.
'개인 개발 공부 일지' 카테고리의 다른 글
| PHP 입문과 궁금했던 점 (0) | 2024.03.27 |
|---|---|
| Clasic ASP (1) | 2024.03.27 |
| JS, JSX 차이와 같은 점 (React) (1) | 2024.03.20 |
| TypeScript 궁금한 점(기초) (0) | 2024.03.20 |
| MSA 인텔리제이로 프론트엔드, 백엔드 동시에 로컬에서 각각의 인텔리제이 인스턴스로 작업시 브랜치 공유되어 작업하기 곤란한 사항_2 (해결) (0) | 2024.03.20 |