Git : 소스 코드를 효율적으로 관리하기 위해 만들어진 "분산형 버전 관리 시스템" 입니다.
출처 : [웹개발 기초] Git 이란?
Repositories
=> 저장소를 의미하며, 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다.
1. Local Repository: 나의 PC에 저장되는 개인 전용 저장소
2. Remote Repository: 원격 저장소 전용 서버에 저장되는 저장소(github , gitlab...)
Worktree
=> 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.
Staging Area
=> 저장소에 커밋하기 전에 커밋을 준비하는 위치.
Commit
=> 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
Head
=> 현재 작업중인 Branch를 가리킨다.
branch
=> 가지 또는 분기점을 의미하며, 작업을 할때에 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을때 Merge를 하여 작업을 한다.
Merge
=> 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.
git init
=> 버전관리 하고싶은 폴더에서 초기화
git clone <주소>
=> 기존 소스 코드 다운로드/복제
1. ex) git clone https://github.com/kimdongeun12/react-todo.git
git branch <브렌치명>
=> 독립적인 공간생성
1. ex) git branch dev
git checkout
=> 브랜치 이동
1. ex) git checkout dev
git add <파일/디렉토리 경로>
=> 새로운 파일을 추가하거나 존재하는 파일 스테이징
1. ex) git add . => 변경사항 모두 스테이징
2. ex) git add example.txt
git commit -m <커밋 메세지>
=> 수정되고 추적되는 모든 파일의 변경 사항 커밋하기
1. ex) git commit -m "first commit"
git push origin <브랜치이름>
=> 커밋된 변경사항 업로드
1. ex) git push master
git pull origin master
=> 원격 저장소의 변경 내용이 현재 디렉토리에 가져와지고(fetch) 병합(merge)됨
git merge <다른 브렌치명>
=> 현재 브랜치에 다른 브랜치의 수정사항 병합
1. ex) git merge dev
Gui란 Git을 좀 더 사용하기 쉽게 도와주는 툴이에요.
대표적으로는 Github Desktop과 제가 현재 사용하고있는 Sourcetree등이 있는데
이러한것들은 시각적으로 잘 표현되어있어서 아직까지도 종종 사용하고있어요