항해14기 온보딩/항해14기 온보딩 개발일지

[항해 14기] 온보딩 개발일지 18 2023/03/25

스쿼트잘함 2023. 3. 26. 03:32

Git+GIthub

 

1. Git

1-1. 개요

git에서 관리하는 영역은 크게 3가지가 있습니다. 

- 현재 작업중인 **Working Directory**
- commit 할 파일의 예비 저장소, 혹은 추적 대상 파일의 공간인 **Staging Area**
- 각 유저의 컴퓨터에서 관리되고 있는 **로컬 저장소**

여기서 우리가 직접 눈으로 확인할 수 있는 저장 공간은 Working Directory이며, 현재 프로젝트가 담긴 디렉토리라고 생각해도 무방합니다. 

많은 사람이 혼란스러워 하는 부분은 바로 **로컬 저장소** 이죠. 내 컴퓨터에 분명이 있는 저장 공간이지만 실제로는 눈에 보이지 않기 때문입니다. 이 로컬 저장소는 우리가 Working Directory로 부터 commit 한 내용들이 스냅샷으로 저장되는 곳입니다. 즉, commit이 된 순간의 파일과 그 내용을 로컬 저장소에서 가지고 있기 때문에 언제든지 commit 했던 지점으로 돌아가는 것이 가능합니다.

 

 

1-2. 주요 기능

1) 버전 관리

- 하나의 파일로도 버전 관리 가능

2) 작업 단위 분할

- 기능을 완성할 때마다 작업 내역을 저장하면 어떤 부분을 만들 때 에러가 발생했는지 쉽게 파악

3) 프로젝트 협업시 유용

- 프로젝트를 나누어서 작업하고 하나로 합치는 것이 누가, 언제, 어떤 부분을 수정했는지를 한 눈에 파악 가능

- Git 을 사용하면 같은 파일명의 내용이 어떤 부분이 다른지를 자동으로 비교하고, 어떤 것을 반영할지 선택 가능

 

 

1-3. commit

- Git 은 commit(커밋) 을 통해 '현재 프로젝트의 상태'을 저장하고 조회

- '파일 저장' 버튼을 누르면 현재 상태의 파일이 저장되는 것처럼 현재 프로젝트의 상태를 저장. 정확히는 snapshot(스냅샷) 처럼 현재 프로젝트의 전체 상태를 포착 것

 

 

2. Sourcetree

1) git 관리용 프로그램

2) 커밋 예시

 

 

3. 원격 repo

1)로컬 repo 차이
- 'Git으로 관리되는 프로젝트' 를 Git 에서는 repo(repository 의 약자) 라고 지칭
- 내 컴퓨터에 저장되어있는 리포지토리를 로컬 repo(local repository) 라고 지칭

- Github 처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것을 원격 repo(remote repository) 라고 지칭

2) Tracking

- 원격 repo와 로컬 repo 를 연결시켜서 내용을 반영시킬 수 있는데 로컬 repo 가 원격 repo 를 연결하는 것을 추적(Tracking, 트랙킹 / branch tracking) 이라고 지칭
- 로컬 repo 만이 내가 어떤 원격 repo 와 연결되어있는지를 알고 있으며 원격 repo 는 내가 어떤 로컬 repo 와 연결되어있는지 정보를 가지고 있지 않다
- 클라우드 서비스와 다르게 commit을 자동으로 반영하지 않는데 반영 범위를 수동으로 설정하여 프로젝트를 관리에 더 용이함

3) push와 pull

- 로컬 repo 의 commit 들을 원격 repo 에 반영하는 것을 push
- 원격 repo 의 commit 들을 로컬 repo 에 반영하는 것을 pull

4) clone

- 원격 repo 를 내 컴퓨터에서도 사용할 수 있도록 가져올 수 있음. 일종의 초기 다운로드

5) 원격레포 적용하기

Github에서 레포생성

- Sourcetree에서 설정

 

 

4. push pull 실제 예시

 

 

5. issue

- 버그를 신고 (Bug report)
- 기능 추가 등의 프로젝트 개선 제안 (enhancement)
- 문제들을 해결하기 위한 작업단위

- 이슈 생성 예시

 

 

6. Branch,Merge

1) Branch

- 브랜치(Branch)를 사용하게 되면 나뭇가지가 뻗어나오듯 기능에 맞게 나누어 작업이 가능

- 브랜치 예시

브랜치 별로 영역을 나누어 작업한 뒤 합병

2) Merge

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

- 병합 충돌 : 브랜치에서 같은 파일을 작업 후 병합 시 일어나는 충돌

<< >> 안의 내용을 해결해주면 된다