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 상태로 불러온다.