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) 원격레포 적용하기
- Sourcetree에서 설정
4. push pull 실제 예시
5. issue
- 버그를 신고 (Bug report)
- 기능 추가 등의 프로젝트 개선 제안 (enhancement)
- 문제들을 해결하기 위한 작업단위
- 이슈 생성 예시
6. Branch,Merge
1) Branch
- 브랜치(Branch)를 사용하게 되면 나뭇가지가 뻗어나오듯 기능에 맞게 나누어 작업이 가능
- 브랜치 예시
2) Merge
- 나뉘어진 브랜치를 합병하는 것
- 병합 충돌 : 브랜치에서 같은 파일을 작업 후 병합 시 일어나는 충돌
'항해14기 온보딩 > 항해14기 온보딩 개발일지' 카테고리의 다른 글
[항해 14기] 온보딩 개발일지 19 2023/03/26 (1) | 2023.04.06 |
---|---|
[항해 14기] 온보딩 개발일지 17 2023/03/24 (0) | 2023.03.25 |
[항해 14기] 온보딩 개발일지 16 2023/03/23 (0) | 2023.03.24 |
[항해 14기] 온보딩 개발일지 15 2023/03/22 (0) | 2023.03.22 |
[항해 14기] 온보딩 개발일지 14 2023/03/21 (1) | 2023.03.22 |