키워드 이해하기
origin
깃허브에 존재하는 원격레포를 뜻한다. 우리가 자주 사용하는 다음 명령어에서 origin은 원격레포를, main은 브랜치를 의미한다. git push origin main
또한, clone하지 않고 git init
을 했을때는 git remote add origin ...
명령어를 입력하기도 한다.
local
내 컴퓨터에 존재하는 레포를 의미한다.
upstream, downstream
git clone
을 했다면 origin은 자동으로 등록돼고, git init
을 했다면 git remote add origin ...
으로 origin을 등록한다. 여기서 upstream은 origin이 되고, downstream은 local이 된다.
git push -u origin main
에서 -u
옵션이 --set-upstream
옵션의 줄임말로 upstream으로 설정한다는 뜻이다. 이는 한번만 해주면 되며, 그 다음부터는 -u
옵션 없이 push, pull 해주면 된다.
github에서 레포를 생성했을때, 로컬과 원격을 연결할 수 있는 방법들을 설명해주는데, 다음 두 방법을 잘 살펴보면 origin
과 -u
쓰임을 이해할 수 있다.
프로젝트 workflow
- dev 브랜치는 백업용으로 feature/기능 브랜치에 문제가 생겨 코드를 되돌리고 싶을때 사용할 수 있다. 따라서 항상 upstream dev와 local dev의 sync가 맞아야한다.
- feature/기능 브랜치에서 upstream의 dev 브랜치로 pr를 날린다. (upstream dev 업데이트)
- local dev 브랜치에서 git pull upstream dev (local dev 업데이트)
- origin dev 브랜치로 git push origin dev (origin dev 업데이트)
git switch -c feature/기능
)merge한 후에는 동일한 파일에서 코드수정금지! git pull로 최신화한 후부터 코드수정할것.