Etc.

[코딩애플 / git] git & github(4)_push, clone, pull, fetch 사용법

Olivia Kim 2023. 3. 28. 09:00
반응형

 

📚 코딩애플의 '매우 쉽게 알려주는 git & github'을 수강하며 배우거나 추가적으로 찾아본 것들을 정리한 내용입니다.

 

내 코드를 github에 올리기

repository

  • git이 파일 버전을 저장해두는 장소를 repository라고 한다.
  • 로컬 작업 폴더엔 숨겨진 .git 폴더가 있는데 그것이 repository이다.
  • 실제로 개발할 땐 온라인 repository를 많이 사용한다. (내 컴퓨터에서 만들어둔 저장소를 백업!)

 

 

 

push : 로컬 저장소에서 원격 저장소로 옮기기

git push -u 원격저장소주소 main

# 원격저장소에 특정 브랜치 푸시하기
git switch 푸시할브랜치명
git push origin 푸시할브랜치명 #origin 안될경우 원격레포주소.git
  • 로컬저장소의 main 브랜치를 원격 저장소에 올리라는 의미이다.
  • -u 옵션은 방금 입력한 주소를 기억하라는 의미이다. 다음부터는 주소를 길게 입력하지 않고 git push만 입력해도 된다.
  • 원격 repo 주소는 https://로 시작해서 .git으로 끝난다.

 

 

 

.gitignore

  • 저장소에 올리지 않을 파일들은 .gitignore에 저장한다.
  • 해당 파일을 하나 만들면 저장소에 올리지 않을 파일들을 쉽게 명시할 수 있다.
  • 그곳에 명시한 파일들은 git add .을 해도 스테이징되지 않는다.

 

 

 


github에서 타인과 협업하기

clone : 원격저장소 파일 내려받기

# 기존 소스코드 다운 받기
git clone https://원격저장소주소

 

단, 협업자(팀원)도 github 아이디가 있어야 하고 그 팀원의 아이디를 Collaborators 메뉴에 등록해둬야 협업이 가능하다.

 

 

 

pull : 원격저장소 내용 가져오기

# 원격 vs 로컬 내용이 다르다면 로컬 저장소에서 git push 불가, 따라서 최신화 해줘야 함
git pull 원격저장소주소

# 특정 브랜치만 가져오는 법
git pull 원격저장소주소 브랜치명

 

  • 원격저장소에 있던 모든 브랜치 내용을 가져와 로컬저장소에 합친다.
  • 로컬이 최신 상태가 되기 때문에 충돌없이 git push가 가능하다.
  • 이전에 -u를 했다면 git pull, git push 까지만 입력해도 진행 가능하다.

 

 

 

[참고]

  • git pull은 git fetch + git merge까지 자동으로 진행한다.
  • fetch는 원격저장소에 있는 commit 중 로컬에 있는 신규 commit을 가져온다.
  • merge는 그것을 merge하라는 의미이다.
  • 따라서 git pull 시 여러 명이서 같은 파일을 작업하고 있으면 merge conflict 오류가 날 수 있다.

 

 

 

fetch

  • 원격 저장소의 내용을 로컬 저장소로 받아오긴 하지만, 내 컴퓨터에 저장되어있을 뿐 우리가 실제로 작업하고 있는 Working Directory까지 끌고 오지는 않는다.
  • 따라서 fetch만으로는 직접 작업을 하거나 수정을 할 수 없다. (git pull은 원격저장소의 소스를 받아올뿐만 아니라 Working Directory 병합까지 수행한다.)

 

 

 


[참고 자료]

https://codingapple.com/course/git-and-github/

 

(무료) 매우쉽게 알려주는 git & github - 코딩애플 온라인 강좌

    Next.js는 프론트엔드부터 서버까지 만들 수 있는 React기반 프레임워크입니다. 다른거 필요없이 이것만 사용해도 풀스택 웹개발이 가능합니다.    Next.js 사용시 서버사이드 렌더링이 쉽기 때

codingapple.com

 

 

 

반응형