업데이트:

Git의 세 가지 영역

Git은 세 가지 영역을 가진다.

leadingAndTrailing

  • 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 된 파일들은 다시 Working Directory로 되돌릴 수 있기 때문에 실수를 줄여준다.

첫 번째 글입니다 가장 최근 글입니다

댓글남기기