320x100
320x100

GIT

- 프로그램의 변경사항을 관리하기 위한 시스템

- 프로그램을 구성하는 파일의 변경사항과 변경자 등에 대한 정보를 기록

 

 

버전

- 프로그램의 변경사항

- git을 통해 변경 이력을 관리할 수 있음

 

 

 

 

Repository (레포지터리)

- 파일을 저장하는 저장소로 Remote Repository와 Local Repository로 나뉨

 

- Remote Repository (원격 저장소)

 : Git 서버에 존재하는 저장소 

 : 프로젝트의 구성원들과 공용으로 저장하는 저장소

 

- Local Repository (로컬 저장소)

 : 개인 컴퓨터 내에 저장된 레포지터리

 : Git을 통해 생성되는 저장소로 원격 저장소와 연결되어 동기화

출처 : https://cupjoo.tistory.com/6

 

 

add

- Commit하기 전 로컬 저장소의 파일 수정, 생성, 삭제 등에 대한 변경 내용을 

   모아놓는 것

 

 

 

Commit

- 프로젝트의 변경 이력을 저장한 것

 : 프로젝트내의 파일의 생성과 삭제, 수정 등에 대한 내용을 포함

 : 사용자가 저장할때마다 Commit이 생성됨

=> 버전관리와 문제 발생시 복구를 위함

=> 일종의 버전

 

 

 

 

Stage

- 변경사항을 Commit에 저장하는 것

 : add를 통해 모아놓은 변경내용은 Staging Area(index)에 저장 됨

 : Staging Area의 내용들 중 원격 저장소에 반영할 변경사항만 선택하여 커밋할 수 있으며

   이때 Commit에 저장되는 변경사항은 Stage되어 Commit에 반영된다.

   그 외 커밋되지 않는 변경사항은 Unstage한 뒤 Commit하는 방식으로 제외시킨다. 

출처 : https://cupjoo.tistory.com/6

 

 

 

Branch (브랜치)

- 특정 커밋에서 부터 분기되는 포인터

 : 커밋을 세부적으로 분기하여 관리하기 위함

출처 : https://cupjoo.tistory.com/6

 

 

 

Checkout

- 현재 위치한 커밋에서 다른 커밋으로 이동하는 것

 : 다른 브랜치 내 커밋이나 같은 브랜치 내 커밋으로 이동 가능

=> 이전 버전으로 되돌아가거나 다른 커밋의 내용 확인

 

 

 

Merge (병합 / 머지)

- 나뉘어진 브랜치를 하나의 브랜치로 합치는 것

 : fast-forward와 non fast-forward로 나뉨

 

- fast-forward 

 : 서로 다른 두 브랜치를 충돌 없이 자동으로 merge

 

- non fast-forward

 : fast-forward를 통한 병합시에 충돌이 발생 했을때의 merge 방법

 : 충돌 기록을 확인하여 코드 수정 후 진행

 

 

 

Clone

- 원격 저장소 내의 파일과 프로젝트에 commit된 히스토리 정보까지 모두 다운로드 하여 

  PC내에 로컬 저장소를 생성하는 방법

=> 로컬 저장소와 원격저장소를 연결하면서 다운로드

 

 

 

Fork

- 타인의 git 레포지터리에 있는 프로젝트를 자신의 git 레포지터리로 복제하는 기능

 : 주로 타인의 프로젝트를 수정하거나 기능을 추가할때 사용

 

 

 

Download ZIP

- 프로젝트 파일만 ZIP으로 압축하여 PC에 저장하는 방법

 

 

 

Push

- 로컬 저장소의 Commit을 원격 저장소에 업로드 하는 것

- Commit의 내용이 원격저장소에 반영 됨

 : 로컬 저장소에서 브랜치를 생성하고 push하면 원격 저장소에 해당 브랜치가 생성됨

 : 원격 저장소에 만들어진 브랜치에 로컬 저장소에서 Commit을 업로드 할 수 있음

 

 

 

Pull

- 원격 저장소에 반영된 사항들을 로컬 저장소에 반영하는 것

 : 원격 저장소의 내용과 로컬 저장소의 내용이 다른 경우 소스파일이 병합되어 로컬 저장소에 반영됨 

 

 

 

pull request (PR)

- push 권한이 없는 레포지터리에 commit를 업로드 하는 방법

 : pull과 달리 레포지터리에 바로 반영되지 않으며 git의 권한자가 따로 반영을 해야 반영됨

 : 주로 Fork를 통해 생성한 레포지터리에서 원본 레포지터리에 Commit를 업로드할때 사용

 

 

 

Git-Flow

- Git 저장소를 체계적으로 관리하기 위한 브랜칭 기법

 : 기본적으로 feature, develop, realease, hotfix, master 브랜치로 나누어 관리

 : feature (새로운 기능 추가)

 : develop (메인 개발 브랜치)

 : realease (배포를 위한 브랜치, 준 완성본)

 : hotfix (긴급 오류 수정을 위한 브랜치)

 : master (최종 완성본)

=> 브랜치 이름을 꼭 위에 나온 것으로 사용하지 않아도 되며,

     필요와 목적에 따라 브랜칭 전략을 세워도 됨

 

 

 

레퍼런스

: cupjoo.tistory.com/6

 

Git에 대해 알아보자 1. Git의 개념과 Git Flow

개발을 하다 보면 Git이나 GitHub, GitLab 같은 용어를 상당히 자주 듣게 된다. 오픈소스 프로젝트에 참여하려 했더니 GitHub 아이디를 물어보는 것도 모자라 인턴 지원을 하는데도 GitHub 주소를 알려달

cupjoo.tistory.com

 

 

 

300x250
728x90