두 개을 헷갈리면 안된다.
소스코드를 효과적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템'
Git를 통해서 우리는
git의 구성 요소
git 저장소
저장소(Git repository)란 말그대로 파일이나 폴더를 저장해 두는 곳
그런데 Git 저장소에서는 파일이 변경 이력 별로 구분되어 저장됨
비슷한 파일이라도 실제 내용 일부 문구가 서로 다르면 다른 파일로 인식하기 때문에 파일을 변경 사항 별로 구분해 저장 가능
평소에는 내 PC의 로컬 저장소에서 작업하다가 작업한 내용을 공개하고 싶을 때에 원격 저장소에 업로드
물론 원격 저장소에서 다른 사람이 작업한 파일을 로컬 저장소로 가져오는 것도 가능
[1] 저장소의 종류
로컬 저장소 : 내 PC에 파일이 저장되는 개인 전용 저장소, git 관련 파일이 생성되어 있는 특정 폴더
원격 저장소 : 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
대표적으로 github, Backlog와 같은 저장소가 있다.
[2] 로컬 저장소 생성
폴더 생성 -> 폴더로 이동 -> 우클릭 -> git으로 열기 -> git init
.git 폴더 확인
로컬 저장소를 삭제하고 싶으면 .git 폴더를 삭제
(3) 버전 관리
[0] 계정 설정
git config --list
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
[1] 현재 상태 확인
git status
[2] 변경 사항 확인
git diff
[3] 버전 관리할 파일 추가
git add 파일이름
git add . 모든 파일 추가할 땐 . 사용
[4] 버전 저장
git commit -m "메시지"
[5] 되돌리기
git reset --soft 커밋내역 최신 파일 유지
git reset --hard 커밋내역 최신 파일 사라짐
[6] 커밋 내역 확인
git log
git log --reflog
[7] 실습
git init으로 저장소 생성
git status로 현재 저장소 상태 확인 (변경된게 있는지 확인 가능)
git add 파일 버전을 저장할 파일들을 추가
git commit 버전 저장
git log --reflog 버전 목록
git reset 으로 특정 버전으로 버전 변경
git restore . 로 해당 버전의 상태로 복구
(4) 브랜치
원본을 수정하지 않고 안전하게 새로운 기능을 추가해볼 수 있도록 하는 프로젝트의 복사본
[1] 브랜치 생성
git branch 브랜치이름
[2] 브랜치 변환
git switch 브랜치이름
[3] 브랜치 병합
git switch 브랜치이름 메인이 되는 브랜치
git merge 다른브랜치이름
[4] 브랜치 충돌
충돌난 파일 내용 수정
git add 파일이름
git commit
[5] 실습
마스터로 git commit 몇 번 하고
git branch [브랜치 이름]로 브랜치 생성
git switch [브랜치 이름]로 브랜치 변경
변경한 브래치로 git commit 몇 번 하고
git switch master 로 브랜치 변경
변경한 브래치에서 변경했던 파일을 master로도 변경 (내용은 다르게)
git merge [브랜치 이름] 하면 충돌 발생
충돌난 파일 내용 수정
git add 파일이름
git commit
(5) 병합 방법
[1] 3-way merge
c1 -> c2 c3
c2-1 -> c2-2
[2] fast-forward merge
병합 전
c1 -> c2 ->
c3 -> c4
병합 후
c1 -> c2 -> c3 -> c4
[3] rebase and merge
병합 전
c1 -> c2 -> c3
c2-1 -> c2-2
병합 후
c1 -> c2 -> c3 -> c2-1 -> c2-2
2) github
(1) github란?
git으로 관리하는 프로젝트를 업로드하거나 공유할 수 있는 웹 사이트
(2) git으로 관리하는 프로젝트 github에 저장하기
[1] 원격 저장소 확인
git remote -v
git remote show 원격 저장소 이름
[2] 원격 저장소 설정
git remote add 원격저장소이름 원격저장소주소
ex) git remote add origin https://github.com/본인계정/tutorial
[3] 원격 저장소에 공유
git push origin master
3) 개발 도구와 연동
[1] 개발도구에 git 계정 설정
File -> Settings -> Version Control -> Github -> +버튼 클릭 -> Login Via Github -> 로그인 진행 -> OK
[2] 원격 저장소에서 파일 받아오기
VCS -> Get From Version Control -> URL: 원격저장소 주소 -> Clone
[3] 개발 도구에서 push 해보기
파일 생성 또는 편집 -> Git에서 commit -> Git에서 push
참고하면 좋은 곳
https://github.com/prgrms-be-devcourse/springboot-basic
https://github.com/f-lab-edu/food-delivery/wiki