티스토리 뷰

Dev.

[Git] Basic

인쥭 2020. 8. 24. 09:32
반응형

1. Git : 분산형 버전 관리 시스템
- 분산형 : 로컬 / 원격 저장소, 또는 Workflow 별 분산 관리가 가능
- 버전 관리 : 어떤 정보에 대해 여러 버전을 관리. 이 경우, '주로' SCM(Source Code Management)을 지칭

2. 용어 정리

  • Repository : 파일 / 또는 폴더를 저장하는 공간이며, 버전 관리를 지원.
    - .psd, .pptx 또한 소스 코드와 마찬가지로 파일 형태로 저장되므로 Git을 이용한 버전 관리가 가능.
    • Remote Repository : 파일을 원격 서버에서 관리하는 경우, 팀원 간 공유를 위해 사용하는 저장소
      • 서버와 Local의 물리적인 위치를 통한 구분은 아니다! 논리적인 구분임을 알아두자.
      • git clone을 통한 기존 저장소 복사가 가능
    • Local Repository : 내 PC에서 작업하는 경우, 파일이 저장 / 버전 관리되는 로컬 저장소
      • 기개발 중인 프로젝트 디렉토리로부터 git init을 사용하여 Local Repo. 생성이 가능
  • 두 저장소 형태 중 반드시 택일하여 사용하는 구조는 아니다.
    • 협업하는 경우, 일반적으로 자신의 PC에서(Local Repo.) 버전 관리를 통해 작업하다
      이를 팀원들과 공유할 경우(또는 공유 받고자 하는 경우) 원격 저장소를 활용한다.
  • worktree : 실제로 작업 중인 디렉토리
  • index(stage area) : commit이 실행되기 전, Repository와 worktree 사이에 존재하는 공간
    • commit을 위해서는 파일 변경 이력(작업 이력)을 index에 반영하는 작업이 필요하다.
    • 이렇듯 선택적으로 파일 변경 이력을 index에 반영하는 작업은 staging이라고도 함!
  • git add : index에 파일 내용을 추가
    • 해당 명령어는 worktree 상의 현재 내용(contents)에 따라 index를 업데이트한다.
    • 이는 다음에 있을 commit에 반영하기 위해 준비하는 과정이기도 함!
  • git commit : 저장소에 변경 이력을 반영.
    • 새로운 commit을 생성하는 것은 index의 현재 내용(contents)과 입력한 log message를 포함한다.
    • commit은 변경 이력을 실제로 반영하는 작업이므로, 자신의 작업을 설명할 log message를 적절히 입력하는 것이 좋다.

 

3. git의 파일 상태

  • Repository의 파일 상태를 보기 위해서 git status 명령어를 활용할 수 있다.
  • Worktree의 파일들은 Tracked와 Untracked로 구분된다.
    • Tracked : Git이 추적하는 관리 대상이며, git clone 등으로 동기화한 스냅샷에 포함되어 있는 상태
      • Unmodified : Git이 추적하는 파일 중, 수정되지 않은 상태. git clone 직후 모든 파일의 초기 상태이기도 하다!
      • Modified : Git이 추적하는 파일을 수정했을 때의 상태.
        • 우리는 Tracked이자 Modifed인 파일들을 관리하기 위해 해당 파일을 Staged > Commit할 필요가 있다.
        • Staging 작업을 생략하고 싶다면 git commit -a 명령어를 활용한다. 수정된 파일이 모두 commit된다!
    • Untracked : 스냅샷 / index에 모두 포함되지 않은 상태.

예시 : 

  1. 특정한 저장소를 git clone하여 worktree에 스냅샷을 가져온다.
  2. 모든 파일은 Tracked - Unmodified상태가 된다.
  3. 특정 파일을 수정할 경우 Tracked - Modified 상태가 되며, git add 등을 통해 이를 Index에 등록하는 과정을 반복한다.
  4. git commit을 통해 index의 파일을 Repository에 반영하며, 파일들은 다시 Tracked - Unmodified상태가 된다.
  5. 작업 중 새로운 파일을 생성했을 경우, git add를 통해 index에 등록하기 전까지 Untracked 상태를 유지한다.
    • 또는 일부 파일을 추적하지 않기 위해 .gitignore에 파일들을 명시적으로 등록해도 좋다.

참고 : https://git-scm.com/

댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함