Git 이란?
프로젝트의 버전 관리를 하기 위해 사용하는 프로그램
- Git으로 버전 관리한 프로젝트를 다른 개발자와 함께 관리하면서 협업하는 것이 가능함
- 오늘날 개발 실무에서는 Git과 GitHub, GitLab 등을 함께 사용함으로써 버전 관리와 협업을 체계적으로 수행함
- Git 기반의 저장소 서비스를 제공하는 곳 → GitHub, GitLab, Bitbucket 등 …. 따라서,
Git ≠ GitHub, GitLab
▶ Git을 사용해야 하는 이유!
: 소스코드의 버전 관리와 여러 개발자와의 협업을 하기 위해
▶ 프로젝트의 버전관리를 했을 때의 장점
- 개발 중인 프로젝트의 버전을 관리할 수 있다.
- 현재 프로젝트의 히스토리를 파악할 수 있다.
- 다른 개발자도 버전 관리된 프로젝트의 히스토리를 알 수 있다.
Commit 이란?
특정 버전을 저장하는 것
▶ Commit은 크게 3가지 영역을 바탕으로 작동한다.
1. Working Directory: 실제로 다루고 있는 프로젝트 디렉터리 자체
2. Staging Area: 특정 버전으로 관리하고싶은 파일들을 모아두는 장소
3. Repository: 특정 시점의 Staging Area의 모습을 커밋으로 남기면 커밋들이 저장되는 영역
▶ 외부 저장소로 업로드 할 때의 장점
1. 프로젝트 복구 가능
(문제가 생겼다면 외부 저장소에 저장해둔 프로젝트를 그대로 다시 내 컴퓨터로 가져오면 됨)
2. 협업과 동시에 버전 관리 가능
* README.md 파일은 프로젝트의 설명을 많이 적어둠
★ 새로운 작업을 시작하기 전에는 항상 현재 자신의 컴퓨터에있는 프로젝트를 Gitlab서버에 존재하는 프로젝트와 비교하여 최신 커밋 된 프로젝트가 내가 가지고있는 프로젝트에 포함되어있는지 반드시 확인 후 작업 (git pull)
⇒ 바로 자신의 새로운 커밋을 추가할 경우 나중에 git push 명령으로 Gitlab서버에 업로드 할 수 없게 됨!
Git 업로드 방법
1. git pull 로 기존 파일을 가져온다
2. git log --all --graph 로 기록 확인
3. git reset --hard 커밋아이디 를 하면 수정코드가 다운 됨
4. git add . 으로 파일 올림
5. git commit -m "페이지 설명"
6. git log 로 확인
7. git push 로 추가할 내용 업로드
Branch
= 특정 커밋을 가리키는 '포인터'
: 하나의 프로젝트에서 서로 다른 개발 흐름을 병렬적으로 가져가기 위해 사용
* 프로젝트 진행 중 분기를 나누고 싶을 경우
Branch 생성 (git branch {branch_name}
-> Head를 생성된 Branch로 이동 (git checkout banch이름)
-> Commit (git commit -m "커밋 설명")
Merge
= 다른 Branch의 최신 Commit 내용을 합칠 때 사용
* Fast-Forward Merge: 앞뒤로 있는 브랜치의 경우, 이전 커밋을 가리키고 있는 기준 브랜치에서 머지를 시도하면, 보다 최신 커밋을 가리키는 타겟 브랜치의 위치로 기준 브랜치가 이동만 하는 것
* 흐름이 중간에 갈라진 경우, 각 흐름의 커밋을 가리키는 브랜치들을 머지하면 새로운 머지 커밋이 생성됨
Conflict(충돌) 해결
merge를 시도하다가 병합 충돌되어 merge가 되지 않는 경우가 있다. 그럴 때는 충돌된 파일을 열어서 원하는 최종 모습대로 코드를 수정하고, git add . → git commit -m " "를 해주면 된다.
'IT 지식' 카테고리의 다른 글
Oven (다음 카카오) (0) | 2021.12.28 |
---|---|
코딩 기본 용어 (0) | 2021.11.16 |
[Git] Git 명령어 (0) | 2021.07.27 |