Git Flow
현재 팀의 기본 브랜치는 dev입니다. 새로운 기능을 개발하기 위해 feat/user-update라는 브랜치를 생성하고, 이 브랜치에서 dev 브랜치를 병합했습니다.
Git Flow
인텔리제이에서는 현재 브랜치를 표시하고 있지만, 과거에 인텔리제이의 오류로 인해 현재 브랜치와 다른 브랜치가 표시된 적이 있었습니다.
그래서 현재 브랜치가 제대로 적용되었는지 확인하기 위해 feat/user-update 브랜치에서 임시로 tmp.txt 파일을 만들었습니다. 그 후 브랜치를 전환하여 파일들이 사라지는지 확인하기로 했습니다.
dev 브랜치로 전환했을 때 tmp.txt 파일이 여전히 보였기 때문에, tmp.txt 파일이 dev 브랜치에도 존재하는지 확인하고자 했습니다.
dev 브랜치로 전환하고 나서도 위와 같이 tmp.txt파일이 계속해서 보였습니다.
브랜치가 전환되면, 해당 브랜치에 없는 파일들을 사라져야 되는 거 아닌가?
위와 같은 의문점이 들어서 찾아본 결과 워킹 디렉토리에 있는 파일은 Git이 아직 커밋하지 않았거나 스테이징하지 않은 상태이므로, 브랜치를 전환하더라도 해당 파일은 여전히 작업 디렉토리에 남아 있습니다.
Git은 워킹 디렉토리에 있는 파일을 브랜치와 무관하게 그대로 유지하기 때문에, 브랜치를 바꿔도 `tmp.txt` 파일이 계속 보이는 것입니다.
저는 워킹 디렉토리와 무관하게 Git이 파일을 추적한다고 생각했지만, 실제로는 그렇지 않았습니다..
해결 방법
현재 워킹 디렉토리에 존재하기 때문에 다음과 같은 작업으로 해결할 수 있습니다.
- 커밋
- `tmp.txt` 파일을 현재 브랜치에서 커밋한 후에 브랜치를 전환하면, 다른 브랜치에서는 `tmp.txt` 파일이 보이지 않게 됩니다
- 스태시(Stash)
- 커밋하지 않고 파일을 임시로 저장해두고 싶다면, `git stash` 명령어를 사용하여 워킹 디렉토리의 변경 사항을 stash에 저장한 후 브랜치를 전환할 수 있습니다.
- 삭제
- 만약 이 파일이 특정 브랜치에 속하지 않도록 하고 싶다면, 브랜치를 전환하기 전에 파일을 삭제할 수 있습니다.
워킹 디렉토리(Working Directory)란 ❓
워킹 디렉토리(Working Directory)란, 현재 Git에서 작업 중인 프로젝트의 로컬 파일 시스템의 폴더를 의미합니다.
워킹 디렉토리는 여러분이 실제로 파일을 보고 편집하는 위치입니다. Git에서는 워킹 디렉토리를 통해 파일의 상태를 관리하며, 이 디렉토리에서 작업한 내용이 스테이징 영역(또는 인덱스)과 커밋 기록으로 반영됩니다.
워킹 디렉토리(Working Directory)
- 실제 파일이 저장된 폴더입니다.
- 파일을 열고 수정하며, 새로운 파일을 추가하거나 삭제할 수 있습니다.
스테이징 영역(Staging Area)
- Git의 커밋을 만들기 전에, 워킹 디렉토리에서 변경된 파일을 스테이징하여 커밋할 준비를 하는 단계입니다.
- git add 명령을 통해 파일을 스테이징합니다.
git status
"git status" 명령어로 현재 워킹 디렉토리와 스테이징 영역의 상태를 확인할 수 있습니다. 이 명령어는 현재 브랜치의 상태, 수정된 파일, 스테이징된 파일, 커밋되지 않은 변경 사항 등을 보여줍니다.
"git status"명령어로 확인한 결과 tmp.txt파일이 워킹 디렉토리에 존재하는 것을 확인했습니다.
오늘 배운점을 정리하자면 브랜치를 전환해도 파일이 보이는 이유는 브랜치를 전환해도 파일이 계속 보이는 이유는 파일이 커밋되지 않았거나 스테이징되지 않았기 때문입니다.
'TIL,일일 회고' 카테고리의 다른 글
[Til, 일일 회고] 2024.08.30 - @MappedSuperclass란 무엇일까❓ (0) | 2024.08.30 |
---|---|
[TIL, 일일 회고] 2024.08.29 - UserDetails와 getAuthorities() 메서드 이해하기 (0) | 2024.08.29 |
[TIL, 일일 회고] 2024.08.27 - Spring Security와 @AuthenticationPrincipal을 활용한 관리자 및 사 (0) | 2024.08.27 |
[TIL, 일일 회고] 2024.08.26 - @Pattern 사용 (0) | 2024.08.26 |
[TIL, 일일 회고] 2024.08.25 - 랜덤 시크릿 키 생성 방법 (openssl rand) (0) | 2024.08.25 |