17일차 공부 정리

간단한 깃 형식 정리

Git1

어설프지만 나름 직접 만든 자료입니다. 깃을 사용하게 되면 디렉토리 구성이 다음과 같게 됩니다.

Working 디렉토리는 실제 사용하는 디렉토리, Stage area는 커밋 전 대기공간, repositiory는 모든 버전을 기록한 공간 입니다.

더 자세히 말하면 각각의 버전은 그 버전이 만들어진 시점의 stage area(장바구니)의 스냅샷 입니다.

stage area은 Working 디렉토리에서 add하면 파일이 올라가며, stage area에서 커밋하면 버전이 만들어집니다.

깃 명령어 정리

- git init : 깃을 생성합니다.
- git status : 현재 상태를 나타냅니다. (수정이나 add인게 있는지)
- git add FILE_NAME : FILE_NAME을 add 합니다.
- git commit -m COMMIT MESSAGE : 커밋합니다.
- git checkout COMMIT_ID : COMMIT_ID 버전으로 Head를 위치시킵니다.
- git checkout master(브랜치도 가능) : Head가 브랜치를 가르킵니다.
- git branch branch_NAME : 브랜치를 만듭니다.
- git merge branch_NAME : 현재 브랜치에서 branch_NAME와 병합합니다.
- git log --oneline (--all) : 로그를 oneline으로 보여줍니다.
- git reflog : 내가 했던 작업들을 기록합니다. 잃어버린 COMMIT_ID을 찾을 수 있습니다.

기억해야 할 멘트

  • working directory와 stage Area도 같이 시간여행을 하는 것 처럼 보입니다.
  • 커밋시 부모를 찾는것은 head가 가르키는 버전입니다.
  • 마스터와 헤드가 떨어져있다면 타임머신중이라고 생각합니다.
  • 헤드가 버전을 직접 가르키면 detached stage, 아니면 attached stage. 보통 attached stage 유지해야 합니다. (git checkout master 권장)
  • master가 exp(실험 브랜치)를 병합한다는 것은 실험이 성공적으로 끝났을 때 수행합니다.
  • exp가 master를 병합한다는 것은 핵심 수행사항은 master를 통해 업데이트 되는데 exp는 master의 업데이트를 받기 위해 수행하는 일입니다. 자주 시행하지 않으면 버전이 많이 꼬일 수 있습니다.
  • 깃은 어떤 버전도 지우지 않고 수정하지 않습니다.(불변성, 안정성이 보장됩니다.)

느낀점

실시간 강의에서 많은 내용을 배웠는데 정리하니 단촐하지만 실제로 머리 속에 이해된 부분이 많아서 좋습니다.

집중력이 중간중간 무너지는 순간이 있었지만 잘 이겨낸 것 같습니다.

깃이 이고잉님 말씀대로 정말 많은 기능이 있습니다. 깃은 평생 쓰게 될텐데 개념부터 잘 배워나서 이 강력한 무기를 내 것으로 잘 만들어 보겠습니다.

정리하니 꽤 늦은 시간인데 내일도 어떻게 힘냈으면 좋겠네요. 스몰톡이라는 이벤트도 진행되는데 좋은 사람들과 대화 나눌 수 있는 기회가 있었으면 좋겠습니다.

** 위 수식과 그림은 부스트캠프 AI Tech 교육 자료를 참고하였습니다.