Staging Area와 Repository의 개념

방충림·2023년 3월 28일
4

Git & GitHub

목록 보기
2/8
post-thumbnail
post-custom-banner

Git으로 버전을 관리하기 위해 필수적 사용하는 명령어가 git addgit commit이다.
이들은 각각 무엇인지, 그리고 왜 두 단계로 나누어져있는지를 알아보겠다.

1단계 : git add

첫 번째 단계는 파일을 Git의 스테이징 영역에 추가하는 것이다. 이 작업은 git add 명령어로 수행된다. 스테이징 영역에 추가된 파일은 이후 버전 생성에 포함될 파일들로 선택된다.

2단계 : git commit

두 번째 단계는 스테이징 영역에 추가된 파일들을 하나의 버전으로 묶어 Git의 데이터베이스에 저장하는 것이다. 이 작업은 git commit 명령어로 수행된다. 커밋 메시지와 함께 커밋을 생성하면, 해당 커밋은 고유한 해시 값으로 식별된다. 이후에는 이 커밋을 기반으로 원하는 시점으로 되돌아갈 수 있다.

이럴 식으로 작성한 파일을 스테이징 하고 기록하는 것을 "버전생성"이라고 한다.

Q.굳이 두 단계에 걸처서 저장하는 이유는?

이러한 두 단계로 나뉘어져 있는 이유는 Git의 유연성과 안정성 때문이다. git add 명령어는 개발자가 어떤 파일들을 포함시킬지 선택할 수 있게 해주고, 스테이징 영역을 거쳐 커밋을 생성하면 개발자가 정확히 어떤 변경 사항을 포함시켰는지 알 수 있다. 이렇게 나뉘어져 있는 단계는 실수를 방지하고, 효과적인 협업을 가능하게 한다.

  • 작업 폴더에서 staging area로 파일을 고르는 행위를 “스테이징( staging)” 이라고 하기도 함.
  • git state 어떤 창을 스테이징 해놨는지, 뭐가 수정이 됐는 확인할 수 있음
  • commit은 보통 간단한 기능을 만들었을 때 커밋을 하면 되겠음
  • repository는 commit된 파일의 버전들을 모아놓는 곳.

Q. 얼마나 자주 commit 하는게 좋은가?

  • 간단한 기능을 하나 추가할 때 마다 commit 하면 된다.
  • 예를 들어 웹개발시 회원가입기능을 만든다고 하면
    - 회원가입 폼 레이아웃을 만들면 commit 하고,
    - 입력한 이메일이 맞는지 검증하는 기능을 만들었으면 commit 하고,
    - 서버에 전송하는 기능을 만들었으면 commit 하고.


부록) add, commit 취소하는 명령어

git restore 파일명 // 최근 commit 된 상태로 현재 파일의 수정내역을 되돌림
git restore --source 커밋아이디 파일명 // 특정 커밋하이디 시점으로 복구
git restore--staged 파일명 // 스테이징 취소
git revert 커밋아이디 // 그 커밋 아이디만 취소한 커밋을 하나 생성해줌 (파일 여러개 가능)
git reset —hard 커밋아이디  // 과거로 모든 걸 되돌리기 (협업시에 크면 큰일남)
git reset —soft 커밋아이디 // 변경사항을 다 삭제해버리진 않고, 커밋아이디 이후 변경사항은      
                          //staging area에 남김. 그 다음 커밋하거나 할 수 있음
git reset mixed // 변경사항이 스테이징 되지 않은 상태로 나와있음 그다음 에드랑 커밋 할수 있음.
  • merge commit도 취소 가능하다.

  • git reset —hard 커밋아이디 - 과거로 오든 걸 되돌리기
    협업시에 쓰면 위험하므로 잘 사용하지 않는다.

  • 프로젝트 망하거나, 짧은 거리 되돌아갈 때는 유용할 수 있다.

  • soft쓰면 변경사항을 싸그리 삭제해버리진 않고 이거 이후의 변경사항은 스테이징 에어이러에 남김 그래서 그다음 커밋 다시하거나 할 수 있다.



참고문헌 : 코딩애플

profile
최선이 반복되면 최고가 된다.
post-custom-banner

0개의 댓글