[TIL] Version Control Systems

_sqrlkoo·2022년 7월 16일
0
post-custom-banner

제 몸이 편하기 위해 간단하게 작성하였습니다,,

Branch 동작원리

  • master branch : 프로젝트가 언제든지 release 되어야 하는 상태. 완료되지 않은 작업 소스를 가져오면x
  • hotfix : 마스터브랜치에서 아주 중대한 버그나 결함이 발견 되었을때 브랜치를 따로 가져와 핫픽스라는 버그 수정이 완료되면 마스터에 머지함

  • develop branch : 실질적인 개발작업 공간

Repository (저장소)

  • 프로젝트 단위의 여러 소스코드들이 저장되어 있는 여러 개의 branch가 저장되는 디스크 공간이다.

  • 파일이 저장되는 위치에 따라 로컬 저장소(Local Repository)와 원격 저장소(Remote Repository)로 구분한다.

동작원리

  • 깃은 데이터를 가져오거나 프로젝트를 저장할 때마다 그 시점의 파일에 대해 스냅샷을 저장하는 형태라고 생각하면 된다.

  • 변경되지 않은 파일은 다시 파일을 저장하지 않고 이전에 저장한 동일한 형태로 파일을 링크

The Three States

  • Modified
    수정한 파일을 아직 로컬 데이터베이스에 commit 하지 않은 상태.
  • Staged
    현재 버전에서 수정한 파일을 곧 Commit 할 것이라고 표시한 상태.
  • Committed
    데이터가 로컬 데이터베이스에 안전하게 저장된 상태.

Sections

[사진 출처: Git 공식 웹사이트 (출처)]

Working Directory

  • 작업을 수행하기 위한 Directory, 즉, 일반적인 Local PC의 저장 경로.

  • Repository에서 특정 버전을 사용 혹은 수정하기 위해 Checkout 하여 저장하는 경로.

  • Repository에 commit 하기 위한 파일을 처음 생성 혹은 수정하는 공간.

Staging Area

  • commit 할 내용이 올라가는 임시 저장 영역.

  • Staging Area에서 commit에 반영할 파일만 선별하여 commit 진행.

  • Git의 기술적 용어로 "index"라고도 부름.

.git directory (Repository)

  • commit 된 파일들이 저장되는 공간. (Local Repository)

  • 파일의 수정사항, 즉, 각 버전에 대한 Snapshot을 저장.

  • Push를 하면 이 Local Repository에서 Remote Repository로 전송.

checkout the project

  • Checkout 대상: Branch, Commit, Tag

  • Checkout 을 통해 과거의 여러 시점의 코드로 이동이 가능함

  • Branch 생성 및 삭제, 수정 등 다양한 작업에 활용함

The Three States

  • Modified
    수정한 파일을 아직 로컬 데이터베이스에 commit 하지 않은 상태.

  • Staged (add)
    현재 버전에서 수정한 파일을 곧 Commit 할 것이라고 표시한 상태.

  • Committed
    데이터가 로컬 데이터베이스에 안전하게 저장된 상태.

command!!

  • ls : 현재 위치한 경로 안의 내용 출력

  • ls -al : 디렉토리 내 숨겨진 파일까지 모두 확인가능

  • ls -al | grep "" : "" 만 골라서 검색

  • cd ~ : 사용자의 홈 디렉토리로 이동

  • cd "디렉토리명" : 해당 디렉토리로 이동

  • cat "" : 디렉토리에 있는 내용을 터미널로 표시해주는 명령

  • init :현재 디렉토리를 깃 리포지토리로 설정하는 명령

이정도만 하고 다음에 마저,,작성,,

$ git status

현재상태가 어디냐!

$ On branch master

마스터 브랜치에 있습니다!

$ git commit -m "[msg]"

깃을 커밋한다! 메세지는 "msg" 안에 작성하면 된다. (50자 이내가 좋음)

$ git remote add

로컬 리포지토리에 원격 리포지토리를 추가한다!

$ git push -u origin master

원격 저장소에 저장하는 최종단계 (잔디심기) "master"는 브랜치에 따라 바뀔 수 있다.

// 7월 29일 수정 //

post-custom-banner

0개의 댓글