📌 What You Will Learn
✔️ git/ GitHub 이란? VCS(Version Control System)이란?
✔️ repository 생성 + 관련 명령어(git init, git add remote, git remote -v)
✔️ local repository / remote repository
✔️ git clone vs. git pull 개념 및 차이점
✔️ branch의 개념 + 관련 명령어(branch 생성, branch 이동, branch 제거)
✔️ git staging 설명 + 관련 명령어(add, commit, push)
✔️ conflict는 왜 발생하는가? 어떻게 해결하는가?
📌 git과 github는 분리된 환경이고, 로컬 환경과 중앙서버라는 명확한 차이가 있다.
push
다운 받아 작업한 내용을 중앙 서버에 업로드 하는 것
내 로컬에 있는 수정 내용을 중앙 서버로 밀어 넣는다는 의미
pull
다른 개발자가 내가 수정한 내용을 다운 받는 것
🤔 소스 코드를 다운 받는데 clone과 pull의 차이는?
clone은 처음 소스를 다운 받을 때만 사용한다. 이미 다운 받은 내용의 변동 사항을 다운 받을 때는 pull을 사용한다. 이 두 가지는 github가 아닌 사용자의 컴퓨터에서 일어나는 것
Local Repository : commit들이 기록 되어 있는 곳 / git commit 명령어를 사용하면 Local Repository에 올릴 수 있다.
하나의 commit이 하나의 버전의 구분점이 되고, 이전 버전에서 해당 버전으로의 변경 내역이 담겨 있다.
내 로컬 환경에서 일어나는 작업
Remote Repository : 원격 서버에서 관리되는 저장소 / 이 곳에 올라온 commit은 다른 사람들도 참조할 수 있다. (공개된 repository일 경우)
Git을 사용하여 파일 버전 관리할 때 파일은 3가지 상태 중 하나의 상태에 있게 된다.
Committed
Git 기본 상태 중 가장 마지막 상태 / Commit이 된 후 Push를 할 수 있다
Modified
처음 수정이 일어나서 변화를 감지했을 때 / 아직 Commit 되지 않은 상태의 파일
Staged
중간 save
Modified file에서 한단계 나아가 곧 Commit될 것이라고 mark 해 놓은 상태
곧 Commit 할 수 있다는 의미
Commit 하기 전 중간 상태를 저장하고 잘못 수정 됐을 경우 다시 되돌릴 수 있도록 임시 저장하기 위함
git init
프로젝트를 git repository로 만들기 위한 명령어
프로젝트(project)는 개발하고자 하는 소스코드들이 있는 디렉토리(파일)
git init을 해서 git repo로 만들어야 git으로 버전 관리 가능
git add
수정된 파일을 staged된 상태로 옮기기 위한 명령어
수정을 한 뒤 중간 저장을 하기 위해 commit하기 전에 add를 먼저 해야 한다.
add를 하지 않으면 commit을 할 수 없다.
git commit
add된 사항들을 하나의 commit으로 만들어 commit 메시지를 부여하고 commit 하는 작업
git remote add origin 원격 서버 주소
origin이라는 이름으로 원격 저장소 주소를 등록한다.
등록한 다음 부터 origin이라는 이름으로 접속할 수 있다.
git diff
modified 상태에서만 결과물이 나옴 / 수정사항들을 보여 줌
git status
현재 git repository에 있는 상태를 보여 줌
git log
commit 내역을 보여 줌 / commit history라고도 함
git rm
git에 등록된 파일 삭제
git mv
git에 있는 파일을 이동할 때 / 주로 rename할 때 사용
git branch
branch 생성, 삭제 관리
git checkout
branch를 이동할 때
rocal repository에서 작업 후 add -> commit -> push를 통해 내 레포지토리에 작업내용을 업로드한 다음
Pull Request를 통해 내 작업내용을 원본 레포지토리에 반영해달라고 요청한다.