Git과 Github 알아보기

김태영·2024년 5월 30일
0

TIL

목록 보기
18/70
post-thumbnail

오늘 공부한 것

- 알고리즘 대충 만든 자판 문제 풀기
- Git 특강 듣고 정리하기
- 노코드로 수익형 AI 앱 만들기 3주차

Git과 Github

Git

하나의 폴더 내에서 코드의 변경점을 기록하기 위해 사용한다. 에러 발생 시 과거의 코드 기록으로 쉽게 되돌아갈 수 있다.

  • 코드 변경점 기록
  • 버전 관리 도구 (형상 관리 도구)
    → 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것

Github

백업공유, 협업이 가능한 온라인 코드 저장소를 말한다.

Git의 세 가지 영역

Git은 세 가지의 영역으로 변경 사항들을 관리한다고 한다.

  • Working Directory: 현재 작업 영역
  • Staging Area(index): 커밋 이전의 상태, add 한 변경 사항들이 존재
  • Repository: 저장소, Git으로 버전을 관리하는 디렉토리

사진에 나온 것과 같이, 작업 영역에서 git add 를 한 파일들은 Staging Area로 가게 되고, 이후에 git commit 을 해야 레포지토리에 올라가는 흐름이다.

도대체 왜 Staging Area를 굳이 거쳐서 레포지토리로 업로드 하는 걸까?

그 이유는 여러 상황에서 Staging Area라는 공간의 유용함이 있기 때문이다!

1. 일부분만 커밋하는 경우

커밋 단위는 작으면 작을수록, 또 커밋한 파일들 간의 연관성이 높을 수록 나중에 확인하기 좋다. 다시 말해, 커밋을 체계적으로 할 수록 디버깅이 쉬워진다. Staging Area는 변경 사항들을 검토하고, 파일을 선택할 수 있는 기회를 준다. 그렇다. 실수를 만회할 수 있는 기회를 주는 것이다..! Staging Area가 있기 때문에 일부 파일만 add 하기도 편하고, add 한 파일들을 간단히 확인할 수 있다.

2. 충돌을 해결하는 경우

여러 파일에서 충돌이 발생했거나, 간단히 해결되지 않는 충돌이 발생했을 때도 Staging Area가 있기 때문에 일부분만 충돌을 해결해서 커밋을 할 수도 있고, 파일이 날라갈 불안함 없이 사용할 수 있다.

3. 커밋을 다시하는 경우

커밋 내역 수정은 좀 위험하다. 파일도 날릴 수 있고, 파일이 날라갈 수 있고, 파일이 공중 분해될 수 있기 때문이다! 물론 조심만 하면 할 수 있긴 하다.. 아무튼 Staging Area가 없다면 Working Derectory에서 냅다 바로 커밋을 하게 될 것이고, 검토할 겨를도 없이 저장소에 올라갈 것이고, 수정은 어려워진다. 그러나 Staging Area에 add 된 파일들은 다시 Working Directory로 되돌릴 수 있기 때문에 커밋 전에 수정할 수 있게 해주어 실수를 줄여준다.

길게 작성했지만 사실 세 가지 경우 모두 커밋 전에 코드를 검토할 기회를 주어 실수를 줄이고 커밋을 체계적으로 할 수 있게 도와준다는 내용이다.

profile
화이팅

0개의 댓글