Byeonguk Kim

안녕하세요. 29살의 조금은 늦은 나이로 새롭게 개발자로 시작하는 신입 개발자입니다. 포트폴리오 [https://deaguowl.github.io]

GIT 05. git으로 보는 소스코드 관리

01 Aug 2019 » GIT

2019.08.08 git으로 보는 소스 코드 관리

(TIL은 스스로 이해한 것을 바탕으로 정리한 것으로 오류가 있을 수 있습니다)

# 질문에 답하기

git

  • ㅠㅠ.. 분명 며칠 전에 와 거이다 이해했다하고 글을 적었었는데… 그 사이에 또 굉장히 많은 것들을 알게 되어서 다시 정리한다.
  • 그리고 이 글도.. 아마 며칠 뒤면 또 새로워질 것 같아서 걱정이 된다.
  • git은 쉽지 않다.

전체적으로 보면 Origin과 Local이 있다.

  • 일단 전체적인 것을 보는 것이 중요하다.
  • 우리 회사에서는 소스코드 관리를 bitbucket으로 진행되고 있다.
  • 그리고 그 bitbucket에도 origin master와 origin branch가 있다.
  • 내가 이용하고 있는 로컬에도 local master와 local branch가 있다. 이것을 이해하지 못하면 계속 봐도 이해가 안된다.

그림으로 보는 git

스크린샷 2019-08-08 오전 9 22 04

  • 기본적으로 local master의 경우 origin master를 pull해와서 생성한다.
  • local에 해당 파일을 만들었다면 일차 목표는 성공했다.
  • 이제 작업을 하기 위한 과정들을 하나씩 살펴보자

local에서 작업하기

  • local에서 작업하기 위해서는 branch를 따주어야 한다.
  • 그 명령어는 git branch [브랜치명]이다.
  • 보통은 그 이슈가 주어진 명과 비슷하게 따면 좋다.
  • 그 다음에는 git checkout [브랜치명]을 통해 해당 브랜치로 이동한다.
  • 해당 브랜치에서 이동을 한 이후에 작업을 진행 해주면 된다.
  • 작업 도중에 다른 브랜치로 이동하려면 git add 와 git commit을 통해 local에 저장을 시켜줘야 한다.

local에서 작업이 끝난 이후

  • 다시 local master브랜치로 이동을 한다.
  • 먼저 git add와 git commit이 되어야 한다.
  • local master로 이동한 이후에 git status를 확인해보면 그동안 origin master에서 쌓인 다른 작업들을 확인할 수 있다.
  • 일단 그 local master와 origin master를 하나로 합쳐 주어야 한다.
  • local master에서 git pull origin master명령어 실행
  • 그러면 local master와 origin master가 같아진다.
  • 이후에 다시 해당 브랜치로 이동한다.
  • git checkout [브랜치명]

해당 브랜치에서 rebase해주기

  • rebase를 통해서 그 동안 master에서 올라왔던 commit들과 현재 내가 branch에서 했던 commit들을 다시 잘 정렬해준다.
  • rebase 혹은 merge를 해줘도 된다.
  • 근데 merge에 대해서는 다시 한번 생각해봐야 되겠다.

해당 브랜치에서 origin branch로 push 해주기

  • 해당 브랜치에서 git push를 해주면 origin branch로 올라가게 된다.
  • 올리기 전에 git status를 해보고 여러개의 commit들이 꼬여있다고 하면 git push -f를 해주면 된다.
  • 하지만 아마 보통 origin에서 브랜치가 없을 예정이다.
  • 그러면 밑과 같은 경고 메시지가 나온다.

스크린샷 2019-08-07 오전 11 45 30

  • 해당 문구는 origin에 브랜치가 없다는 말로, origin에 올리면서 해당 브랜치도 함께 만들겠다는 명령어이다.
  • 위에 내와 있는 git push –set -upstream origin [브랜치명]을 입력해주면 된다.

origin branch에서 origin master로 pull request 보내주기

  • 이때는 source tree를 사용하여 origin master로 pull request를 보내준다.
  • 아마 회사마다 사용하는 툴이 있을 것이므로 위 과정을 실행해주면 된다.
  • 이제 이때부터 origin master에 merge되기 위해 코드리뷰 등이 시작된다.
  • pull request 좀 받아주세용 ㅠㅠ.