
- 파일의 변경 사항을 추적하며, 사용자가 각 파일의 버전을 관리할 수 있게 도와준다.
- 파일을 백업할 수 있게 해준다.
- 협업자들과 함께 파일을 공유하고, 각자의 작업물을 취합할 수 있게 해준다.
버전을 관리할 수 있다.
- 문서가 적고 버전이 적다면 버전 관리에는 어려움이 없을 것이다. 그러나 문서가 100개 1000개로 늘어나고 버전도 그에 맞춰 늘어난다면 관리하기 힘들어진다.
- Git은 Git이 관리하는 디렉토리에 어떤 문서를 만들면 해당 문서의 버전을 관리할 수 있다.
백업을 할 수 있다.
- 확실한 것은 우리의 컴퓨터는 언젠가 고장난다는 것이고, 불확실한 것은 우리의 컴퓨터가 언제 고장날지 모른다는 것이다.
- Git은 우리의 작업물을 온라인 원격 저장소에 백업할 수 있도록 백업 기능을 제공한다.
협업을 할 수 있다.
- 개인뿐만 아니라 여러명이서 작업을 하는 경우 하나의 작업물의 다른 부분을 각자 작업할 때, 작업물을 공유하고 취합할 수 있도록 도와준다.
Git은 로컬에서 버전을 관리해주는 프로그램이며, Github은 Git을 클라우드 방식으로 구현한 서비스이다.
- 출처 : designless.net
Repository: 저장소를 의미하며, 저장소는 히스토리, branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 히스토리를 확인 할 수 있다.
Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.
Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치.
Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
Head : 현재 작업중인 Branch를 가리킨다.
Branch : 작업할 때 필요한 영역의 가지 혹은 분기를 만들어 작업할 수 있다.
Merge : 다른 Branch와 현재 Branch를 합칠 수 있다.
Git 초기화를 통해 해당 폴더의 모든 파일이 Git의 관리를 받게 된다.
git init
기본 브랜치 이름 변경하기
git config --global init.defaultBranch <변경할브랜치이름>
- 이 명령어를 입력하면 git init의 기본 브랜치 이름이 변경 브랜치 이름으로 설정된다.
현재 위치의 브랜치 이름 변경하기
git branch -m <변경할브랜치이름>
.git 디렉토리
- git init을 진행하면 .git 디렉토리가 생성된다.
- .파일은 숨김 파일로 ls -al 명령어를 통해 확인할 수 있다.
파일의 상태를 확인하는 명령어
git status
파일을 스테이징 하는 명령어
git add .
Staging area
- Local repository에 저장할 파일들이 임시적으로 대기하는 영역을 의미
로컬에 저장하고 버전을 기록하는 명령어
git commit -m "커밋 내용"
commit 내역 확인하는 명령어
git log
git 원격 저장소와 로컬 저장소를 연결하는 명령어
git remote add origin <복사한 원격 저장소 URL>
git remote --v
현재까지 커밋한 내용 원격 저장소로 업로드하는 명령어
git push <원격저장소이름> <브랜치이름>
원격 저장소를 로컬로 복사해오는 명령어
git clone <원격저장소의클론URL>
원격 저장소에서 로컬로 가져오면서 병합해주는 명령어
git pull <원격 저장소 이름> <브랜치 이름>
- clone은 복사만 해오는 것이고 pull은 원격 저장소의 내용을 가져와서 현재 브랜치와 병합(merge)까지 해주기 때문에, 기존에 작업했던 내용은 유지하면서 최신 코드로 업데이트 가능하다.
- 해당 상태의 파일들은 수정되었을 때 Git이 파일 변경 내용을 감지한다.
- Unmodified
파일의 수정이 Git에 의해 감지되지 않은 상태- Modified
파일의 수정이 Git에 의해 감지된 상태- Staged
파일이 Staging area에 존재하는 상태
- 해당 상태의 파일들은 파일의 내용을 변경하여도 Git이 파일의 내용 변경을 감지하지 못한다.
- Commit의 과정을 통해 Tracked 상태로 변경 가능하다.