Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템’ 이다. 하나하나 날짜별로 어떤 파일이 어떻게 바뀌었는지 확인이 가능하고, 특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데 스냅샷을 만들어 주는 작업을 commit이라고 합니다. commit이라는 기능을 통해서 변경 사항에 대한 스냅샷이 만들어지고 이전의 기록들에 대한 추적이 가능하다면 버전 관리 뿐만 아니라 회사에서 협업을 할 때도 유용하게 사용가능하다.
Git은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템이고,
Github은 Git Repository를 관리할 수 있는 클라우드 기반 서비스이다. 즉 Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근할 수 있는 것이다.(개발자들의 SNS느낌?)
내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야 하는데, Git으로 관리되는 폴더를 Git repository 라고 한다.
Git repository 는 Remote Repository와 Local Repository 두 종류의 저장소를 제공한다. 작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있다. 다른 사람이 Remote Repository에 올려 놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있습니다.
1. Fork는 누구가의 어떤 프로젝트 Repository에 contribute를 하고싶을때, 내 계정으로 Remote Repository를 가지고 오려고 할때 사용하게 된다. 포크로 집어서 복사해 온다는 의미라고 생각하면 된다.
Git Clone은 Remote Repository에 있는 파일을 작업하기 위해서는 내 컴퓨터로 복사해오는 작업을 할때, 사용할 수 있는 명령어가 바로 clone이다. git clone 명령어 뒤에 Repository 주소를 입력하면 해당 Repository를 내 컴퓨터(Local Repository)로 가져와서 작업할 수 있다.
Git status는 현재 Local Repository에 변경된 파일들이 어떤 것이 있는지 확인해 보려고 할때, git status 명령어를 통해 staging area와 untracked files 목록에 어떤 것들이 있는지 확인할 수 있다.
add : add는 파일을 commit 할 수 있는 상태로 만들어 준다.
restore : 변경사항을 폐기(discard changes) 하는 명령어 이다.
git status 를 통해 어떤 파일이 어떤 상태에 있는지, 그리고 해당 파일에 대해 어떤 행동을 할 수 있는지 알 수 있다.
Git restore는 commit되지 않은 Local Repository의 변경 사항을 폐기할 수 있다. git restore mypage.js 명령어를 통해 Work space의 변경 사항을 폐기하고 다시 처음으로 clone 받아 왔던 상태가 된다. 명령어 git restore <파일명>
commit을 하기 위해서는 먼저 Git의 관리 하에 있는 영역으로 파일들을 옮겨 줘야 하는데, 이 영역의 이름은 바로 staging area이다.
변경사항을 저장하기 위해 commit을 사용한다. Git commit -m ‘메시지’ 명령어를 입력하면, Commit 기록은 날짜, commit한 사람, commit 메시지가 모두 기록된다. staging area에 있는 파일만 commit이 가능하다. 이때, staging area는 같은용도의 물건들을 하나의 곳에 보관하는 무빙박스를 말하고, 이 박스에 어떤 용도의 물건인지 간단한 코멘트를 적은 라벨링을 해 주는 것이 바로 commit이다.
Untracked area : Git이 관리하고 있지 않은 영역이다.
Unmodified : 기존에 Commit했던 파일을 수정하지 않은 상태이다.
Modified : 기존에 Commit했던 파일을 수정한 상태이다.
Staged : commit이 가능한 상태이다. 수정한 파일을 commit 하기 위해서는 staged area에 add 하는 작업이 필요하다.
Git reset : Local 에서 commit한 내용을 취소할때 사용한다.
Git push : Local 에서 변경, commit된 사항을 Remote Repository에 업로드한다.
git log : 현재까지 commit된 내역들을 터미널창에서 확인할 수 있다.
Pull Request : 내가 push한 변경사항을 다른사람에게 알리는 것 이다.
1. git init : 기존 디렉토리를 Git Repository로 변환하거나, 새로운 Repository를 초기화하는데 사용한다.
2. remote add origin : Local Repository에 Remote Repository 연결한다.
3. remote add pair : pair의 Remote Repository 연결한다.
4. remote -v : 현재의 Local Repository와 연결된 모든 Remote Repository 목록 확인한다.
5. Pull : Remote Repository의 작업내용을 가져온다.