상세 컨텐츠

본문 제목

git 정리

카테고리 없음

by 개복신 개발자 2022. 11. 11. 18:04

본문

728x90
반응형

버전 관리 시스템이란?

파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템

 

로컬 버전 관리

 

중앙집중식 버전 관리

증앙에 서버를 두고 버전이 변경될 때마다 중앙 서버에서 관리

 

분산 버전 관리 시스템

DVCS

서버 컴퓨터 , 로컬 컴퓨터들에 version을 따로 관리하고 서버에 올리는 형식

이 시스템이 git

 

시간순으로 프로젝트의 스냅샷을 저장

 

깃의 세가지 상태

committed: 로컬 데이터베이스에 안정하게 저장됨

modified: 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않음

staged: 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태

 

modified -> staged -> commited

 

-working directory

storage와 다른 개념, 말 그대로 작업이 일어나는 폴더

 

-staging Area

작업 폴더에서 작업한 변경 내용을 기록하는 곳

 

-git status

untracked --> 추적하지 않는다, add 명령어 실행하지 않음

modified --> add 명령어 실행, staged 됨

 

git log -- git 목록 볼 수 있음

 

새 브랜치 생성 명령어

git branch <branch명>

 

HEAD --> 현재 작업 중인 브랜치를 가르키는 포인터

HEAD가 main 브랜치를 가르키면 main이 현재 작업 중

 

git checkout <브랜치명> --> HEAD가 새로운 브랜치명을 가르킨다.

 

main 브랜치가 HEAD일 때 git merge testing --> testing 브랜치가 main에 머지됨

 

만약 충돌이 발생한다면 --> main 브랜치와 다른 브랜치가 같은 파일을 변경하여 머지하는 경우 충돌이 발생

따라서 살릴 부분을 고르고

save하고 다시 커밋해야 한다.

 

git fork

다른 사람의 repository에서 수정을 원하는 경우 fork하여 repository를 복제해 옮긴다.

 

PR

fork 해와서 수정을 하고 pull request를 날리면 원본 관리자가 커밋을 보고 받아줄지 결정한다.

 

Long Running 브랜치

main - develop - topic등의 구조로

main -- 가장 안정화된 브랜치

develop -- dev 브랜치 개발 이력들을 pr을 날려서 머지

topic -- 개발중인 브랜치 특정 기능을 위한

 

Feature Branch Workflow

 

커밋 메시지 구조

type, subject --> 어떤 타입의 커밋인지 and 주제

 

body, footer --> 거의 안씀(대형 플젝에서 사용)

 

 

반응형

댓글 영역