Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템이다.
하나 하나 스냅샷을 만들어 주는 작업을 commit이라고 한다.
Github은 Git Repository를 관리할 수 있는 클라우드 기반 서비스
Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근할 수 있다.
Fork : Remote에 있는 다른 Repository에서 Fork를 해서 Remote에 있는 내 Repository에 가지고 온다.
clone : git clone 명령어 뒤에 Repository 주소를 입력하면 해당 Repository를 내 컴퓨터(Local Repository)로 가져와서 작업할 수 있다.
git clone <레파지토리 주소>
git clone https://github.com/~~~/git-workflow.git
git status : 내 로컬의 staging area, untracked files 목록을 확인할 수 있다.
git restore : 변경사항을 폐기(discard changes) 하는 명령어, commit되지 않은 Local Repository의 변경 사항을 폐기
git restore <파일명>
git restore mypage.js
git add <파일이름>
git add . //staging area의 모든 파일을 추가
git commit -m "커밋 메시지"
: -m 옵션을 통해 코멘트 작성, Commit 기록은 날짜, commit한 사람, commit 메시지가 모두 기록된다.
git reset HEAD^
git push < origin > < branch >
git push origin master
- git log : 현재까지 commit된 내역들을 확인(종료 : q 입력)
git init : 내 컴퓨터에서 내가 직접 만든 디렉토리를 Git의 관리 하에 들어가게 만들어 주는 명령어.
디렉토리를 git repository로 변환하거나 새로운 repository를 초기화하는데 사용.
git remote add origin : Local Repository를 Remote Repository와 연결하는 작업
git remote add origin <repository 주소>
git remote add 레포지토리이름 <페어의 repository 주소>
git remote remove pair : remote 삭제
git remote -v : 현재 local repository와 연결된 모든 remote respository 목록을 확인.
git pull : 페어의 remote resposityr에 있는 작업 내용을 받아옴. 받아오는 내용은 자동으로 병합(merge) 된다.
git pull < shortname > < branch >
es) git pull pair master
merge conflict : 병합하는 과정에서 충돌 발생
git status : 어떤 파일이 충돌되었는지 확인
충돌이 발생한 파일을 열어 보면 어떤 부분에서 충돌이 발생한 것인지 확인할 수 있다. 그리고 충돌이 일어난 부분은 하나 하나 직접 확인 후 수정이 필요.
Accept Current Change를 클릭해서 내가 수정한 내용으로 파일에 반영가능.
Accept Incoming Change를 클릭해서 Remote Repository의 내용으로 파일에 반영가능.
Accept Both Changes는 변경 사항 모두를 반영가능.
- 충돌한 파일 수정을 완료했다면 Remote Repository에 업로드 하기 위해서 staging area에 파일을 추가
- Merge commit은 자동으로 Commit 메시지가 생성됨.
- 그리고 Remote Repository에 Push 한다면 다음 화면과 같이 Merge branch ‘master’ of 라는 commit 메시지가 기록된다.
Unmodified : 기존에 Commit했던 파일을 수정하지 않은 상태
Modified : 기존에 Commit했던 파일을 수정한 상태
Staged : commit이 가능한 상태. 수정한 파일을 commit 하기 위해서는 staged area에 add 하는 작업이 필요