본문 바로가기
Web Develop

2. 사용 및 적용 [Git / Github] for Windows

by tripleup 2023. 6. 21.
728x90
반응형

Git 기본 동작 원리 (4가지 공간)

1) Working Directory : 작업하는 파일이 있는 디렉토리

2) Staging Area : Git에 등록할 (커밋) 파일들이 올라가는 영역

3) Local Repository (로컬 저장소) : 로컬 Git 프로젝트의 메타데이터와 데이터 정보가 저장되는 영역

4) Remote Repository (원격 저장소) : Github  등의 서비스를 통한 온라인 상의 저장소

 

Working Directory  -> (git add) -> Staging Area -> (git commit) -> Local Repository -> (git push) -> Remote Repository -> (git fetch) -> Local Repository -> (git merge) -> Working Directory

 

Git 기본 용어

1) origin : 원격 (Github 등의 온라인 저장소)에 있는 코드

2) head : 내가 지금 작업하고 있는 로컬 브랜치

3) add : Working Directory에서 Staging Area로 등록하다

4) commit :  Staging Area에 등록된 파일을 Local Storage로 등록

5) commit Message : commit 시 함께 작성해 저장하는 메시지 (메모)

6) push : Local Storage에서 변경된 파일들을 Remote Repository로 등록

7) fetch : Remote Repository의 변경된 파일들을 Local Repository로 전달

8) merge : Local Repository의 변경사항을 Working Directory로 전달

9) Branch : 독립적으로 어떤 작업을 따로 진행하기 위한 가지

10) checkout : 사용할 다른 브랜치/시점을 지정

 

Local Repository

Repository : 파일이나 폴더를 저장하는 곳, Git 저장소는 파일 변경 이력 별로 구분되어 저장됨

snapshot : 파일이나 폴더를 사진을 찍듯 순간의 상태를 저장

 

내 PC에 파일이 저장되는 개인 전용 저장 공간

생성 : git init을 통해 생성

원격 저장소에서 복사해서도 생성 가능

 

Remote Repository

파일이 전용 서버(Github) 에서 관리되며 여러 사람이 함께 공유

생성 : Github를 통해 생성


Clone ?

로컬에서 작업하기 위해 Remote  Repository를 복제해 내 PC에 Local Repository로 저장하는 것

 

Clone 실습 (소스트리 이용)

1) Github 원격 저장소에서 SSH 주소 복사 

 

2. URL에서 복제 선택 -> 복사한 SSH 주소 입력, 복사할 폴더 설정, 이름 설정

이 부분에서 url 인식이 되지 않아 실랑이 끝에 겨우 클론 가능하였다ㅜ

 

 SSH를 사용하여 Clone하거나 연결된 github을 통해 할 수 있다.

 

3. clone 완료

clone 받은 파일에 .git이 생긴 것을 볼 수 있다.


Add, Commit, Push, Pull

 

1) Add ?

변경된 파일 중  Repository에 올릴 파일들을 등록한다.

Working Directory -> Staging Directory

 

2) Commit ?

Add로 등록된 파일들을 한 덩어리로 만들고 메시지 추가해 로컬저장소에 올린다

Staging Directory -> Local Directory

 

3. Push ?

Commit되어 로컬 저장소에서 변경이 된 파일들을 원격 저장소로 전달한다

Local Directory -> Remote Directory

* 히스토리와 체크아웃

히스토리의 원하는 시점에서 오른쪽 클릭 후 Checkout하면 Head가 이동되고 작업 소스가 HEAD 시점의 상태로 변경된다

 

4. Pull ? (Fetch + Merge)

원격 저장소의 변경사항을 로컬 저장소로 가져옴과 동시에 내 작업 소스에 합친다

Fetch : 원격 저장소의 소스를 로컬 저장소로 받아와 일치 시킨다. (내 작업 소스에는 반영 X)

Merge : Fetch해 온 로컬 저장소의 소스를 내 작업 소스에 합친다. (합칠 때 같은 부분의 소스가 다를 경우 충돌 발생)

Remote Repository -> (Fetch) -> Local Repository -> (Merge) -> Working Directory

 

* Pull하는 상황은 언제 발생할까? (동기화)

원격 저장소는 여러 프로젝트 개발 인원들이 동시에 사용한다

다른 개발자가 변경상태를 Push해 원격 저장소에 반영한다면 내 입장에서는 원격 저장소에 변경사항이 발생한 것

다른 개발자가 Push해 원격 저장소가 변경되어 Pull 할 거리가 생기면 상단 풀 아이콘에 숫자가 생긴다

히스토리에도 origin과 로컬 저장소의 현재 시점이 다르게 표시


Branch

Main(Master) : 기준이 되는 버전

브랜치 이름 작성 후 생성  -> 새 브랜치 체크아웃 (현재 작업 소스를 해당 브랜치의 상태로 변경 - Head의 이동)

 

Merge

각각의 브랜치에서 작업이 완료된 후 통합 브랜치(Main)로 모아 합치는 작업

728x90
반응형

'Web Develop' 카테고리의 다른 글

컴퓨터 구조 - 시스템 소프트웨어  (5) 2023.06.22
1. 설치 및 셋업 [Git / Github] for Windows  (0) 2023.06.20

댓글