📍 원격 저장소와의 네 가지 상호작용
🔥클론(clone) : 원격 저장소를 복제하기
(깃허브 상에 존재하는) 원격 저장소를 로컬 (클론받은 컴퓨터로)로 복제
소스트리 -> 새로만들기
설정 -> 원격
원격 저장소 브랜치 이름
main 브랜치 == master 브랜치
origin == 원격 저자소에 붙은 일종의 별명
origin/HEAD == 원격 저장소 origin의 HEAD
origin/main == 원격 저장소 origin의 main
🔥푸시(push) : 원격 저장소에 밀어넣기
(내가 소유한)원격 저장소에 로컬 저장소의 변경 사항을 밀어넣기(업로드)
commit 한 것 원격 저장소에 밀어넣기!
원격 저장소에 올라감!
🔥패치(fetch) : 원격 저장소를 일단 가져만 오기
로컬저장소에서 원격저장소의 변경 사항을 가져오기
git fetch origin main
(-u 옵션을 주게 되면 다음부터 뒤 옵션 생략 가능!)
원격 저장소에 임의의 파일을 하나 올려본다.(B.txt)
원격 저장소에 올라간 파일
로컬 저장소에서 fetch
fetch한 comimt을 보기 위해서(checkout origin/master)- 원격저장소
또다른 방법! fetch를 해 온 변경사항들을 가리키는 HEAD(git checkout FETCH_HEAD)
새로 한 commit(made in github)이 보이지 않음(이유? fetch는 로컬 저장소에 병합까지 하지 않기 때문)
fetch만 하면 로컬 저장소의 master 브랜치에서는 origin/master 에서 commit한 내용을 볼 수 없다.
git log
HEAD -> main, origin/main
fetch 후
HEAD -> main
로 변경된 이유? origin/master 브랜치는 master 브랜치에 비해서 한 커밋 앞서있기 때문이다.
원격 저장소에서 만들어냈던 변경사항을 master 브랜치로 merge 시키기!(git checkout master -> git merge origin/master)
원격 저장소 상태와 로컬 저장소 상태가 똑같아지게 됨!
🔥풀(pull) : 원격 저장소를 가져와서 합치기
pull origin에 있는 내용을 master로
pull한 상태! 원격 저장소 commit 내용이 master 브랜치에도 반영이 되어있음! F.txt made in github
⭐️ pull은 fetch와 동시에 merge 까지 해주는 방법!!!
원격 저장소의 변경 사항을 로컬로 가지고 올 뿐만 아니라 로컬 브랜치에 병합까지