오늘은 git 을 사용하는법을 배웠다.
교수님께서 가지고 계신 git 시뮬레이더로 이론과 실습을 동시에 하면서 진행하였다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
우선으로 버전 관리 시스템을 배웠다.
#1 버전 관리 시스템
> 로컬 : 내 컴퓨터에서만 버전 관리
> 중앙집중형 : 서버에서만 버전 관리
> 분산형 : 내 컴퓨터 + 서버에서 버전 관리
-Git은 분산형 버전 관리 시스템(Distributed Version Control System)#2 Git
> Committed : 버전 관리를 한 상태 (저지르다)
> Modifed : 수정이 일어난 상태 (수정하다)
> Staged : 커밋하겠다고 한 상태
3# 명령어
git commit : 커밋하는 것 (다음 작업으로 넘어가는거)
git branck : 브랜치를 만드는 것 (커밋에 이름을 부여)
> 브랜치 : 특정 커밋에 대한 참조
> -f : 브랜치를 강제로 옮기는 것
git checkout : 특정 버전(커밋)을 불러오는 것 (HEAD(*) 을 이동해 어디서 작업을 할 것인지 정하는것)
> -b : 브랜치를 만들고 체크아웃
git merge : 서로 다른 두 개의 커밋을 합쳐서 새로운 커밋을 생성 (해드에서 같은 항렬일 경우 브랜치가 합쳐지고 다른 항렬일 경우 두 개의 커밋이 합쳐서 새로운 커밋 생성)
git rebase : 커밋을 복사해 다른 커밋으로 붙여넣는 것 (자신을 복사 해 지정한 커밋 아래에 붙이는 것)
> -i : 인터랙티브 리베이스
ex) git rebase -i overHere (해드위치에서 overHere 까지 인터랙티브 리베이스 한 것)
git reset : 예전 커밋으로 옮기는것 (로컬에서만 써야함)
ex)git reset main
ex)git revert pushed
ex)git cherry-pick C3 C4 C7
상대 참조(Relative Reference)
> HEAD : 현재 작업 중인 버전
> ^ : 특정 커밋의 부모
> ^2 : 두 번째 부모
> ~ : 특정 커밋으로부터 어떤 수만큼 떨어진 부모
git tag : 특정 커밋에다가 어떤 내용을 남기는 것 (버전 남기는데 사용)
git clone : 원격 저장소를 복제하는 것
git fetch : 원격 저장소의 내용을 로컬로 가져오는 것
> 1. 로컬에 없는 커밋을 다운로드
> 2. 원격 브랜치를 업데이트
> 원격 브랜치 : 원격 저장소의 브랜치를 추척
git pull : git fetch + git merge (서버에 있는 내용을 로컬로 가져오는것 커밋순서 확인 필수)
git push : 로컬 저장소의 내용을 원격으로 보내는 것 (pull과 반대로 로컬에 있는 내용을 서버로 보내는것 이때 로컬에 최종저장 되있는 부분이 서버보다 이전단계라면 보내지지 않는다)
> 1. 원격에 없는 커밋을 업로드
> 2. 원격 브랜치를 업데이트
원격.
원격 저장소를 만드는 명령어 => git clone
원격 브랜치 : 원격 저장소를 추척하는 특수한 브랜치 (remote name/branch name)
git fetch : 원격 저장소의 내용을 로컬에도 동기화
- 로컬에 없는 커밋을 다운로드
- 원격 브랜치를 업데이트
git pull : git fetch -> git merge
git push : 로컬 저장소의 내용을 원격에 동기화
- 원격에 없는 커밋을 업로드
- 원격 브랜치를 업데이트
git push / pull / fetch
: 브랜치 이름
colon refspec 으로 source:destination
git push source:destination
git pull source:destination