TIL(Today I Learned)
11월 13일(금)
학습내용
- 웹브라우저 프로젝트의 Step 4, 5를 진행하였다.
- Collaborator가 내 저장소에 있는 기존의 브렌치로 바로 커밋을 푸쉬할 수 있다.
- 내 저장소에는 나만 바로 푸쉬가 가능하고, Collaborator는 브렌치를 따로 만들어서 거기에 푸쉬를 한 다음에 기존의 브렌치로 PR을 보내야만 커밋을 반영할 수 있다고 착각했다.
- 파일이 변경된 상태에서 다른 브렌치로 이동이 불가능하며, 변경된 상태를 커밋해야만 브렌치 이동이 가능하다.
- 이 때, 커밋하지 않고 브렌치 이동을 하려면 git stash명령어를 사용하면 된다.
- git stash는 현재 working directory나 staging area에 있는 파일들을 임시 저장하는 기능이다.
- git stash apply를 통해 임시 저장한 stash 목록을 다시 불러올 수 있다.
문제점/고민한점
- 정규표현식에서 (?:)의 의미는?
- git stash apply에서 —index 옵션을 추가하고 안하고의 차이는?
해결방법
- 정규표현식에서 (?:)의 의미는?
- ()은 Capturing group이며, 괄호 안의 내용과 매치되는지 확인하는 동시에 괄호 안의 내용이 메모리에 저장되어 $1, $2 등의 키워드로 접근이 가능하다.
- (?:)은 반대로 Non-Capturing group이며, 괄호 안의 내용과 매치되는지 확인은 하지만 메모리에 저장하지는 않는다.
- git stash apply에서 —index 옵션을 추가하고 안하고의 차이는?
- 만약 Staging Area에 파일이 있었는데 stash로 임시 저장 했을 경우, —index 옵션을 빼고 apply를 하면 staged 상태였던 파일도 unstaged 상태로 파일을 불러오지만, —index옵션을 추가하면 staged 상태였던 파일을 다시 staged 상태로 불러온다.