본문 바로가기
Coding/Git

Git - github flow

by z쿳쿳z 2021. 9. 11.
728x90
반응형

github flow

 github를 사용하면서 github에 대한 flow를 하기 그림으로 설명하면...

  - 4부분으로 분활을 한 부분을 보통 repository 라고 부르고 일명 repo라고 많이 부른다.

  - upstream repo는 각자 수정하고 새로만든 코드들을 merge 하는 곳. 즉, 각자 한 코드를 한곳으로 모으는 곳이며, 최종 코드를 배포할 때 많이 사용. 주로 시니어들이 upstream repo를 만들고 거기에 middle or junior 들이 upstream 코드를 clone을 하고 각자의 코드를 upstream으로 merge를 한다.

  - origin repo는 upstream의 코드를 자신의 github repo에 clone을 하게 되면 생기는 repo이다. 특히 코드를 받을 때 upstream에서 fork를 해야한다는 것을 잊으면 안된다. upstream repo 우측 상단에 fork를 누르고 코드를 가지고 가야한다. fork 없이 upstream에서 코드만 받아간다면 나중에 자기자신이 작성한 코드가 upstream repo로 merge가 안된다.

  - local은 자신의 컴퓨터를 의미한다. 자신의 컴퓨터에 upstream에서 받아온 코드를 가져온 상태를 말한다.

 

 

기본적인 flow를 보면

  1. upstream에서 fork를 받아서 origin repo를 생성하고 local로 클론

  2. 수정된 코드를 origin repo로 push

  3. upstream에 pull req를 보내고 merge

  4. 개인 local에 git pull 받아서 최신 코드로 업데이트를 한다.

또 다시 수정하고 2~4번까지 반복을 하면서 협업을 한다.

git clone 하는 방법

  1. upstream repo에서 fork를 한다.

  2. 자신의 github repo에 upstream과 동일한 repo명이 생겼는지 확인한다.(origin repo 생성)

  3. 자신의 repo에서 code 버튼을 누르고 clone할 주소를 복사를 한다. https://~~ 시작하는...

   4. command line에서 clone 할 곳 폴더에 가서 git clone [복사한 주소]를 넣고 clone을 한다.(local에 코드생성)

   5. 폴더에서 clone한 코드가 왔는지 확인한다. 그리고 나서 clone 폴더로 가서 IDE로 코드를 연다.

 

git flow

   1. clone 된 폴더로 가서 현재 remote 상태. 즉, 현재 local에서 github에 연결된 상태를 확인한다.

git remote -v

위와 같이 확인하면 현재의 remote 상태를 보여주고, local에서 확인 했기 때문에 origin이라는 remote 상태를 확인 할 수 있다. 이 상태에서 upstream repo에 merge 하고 update된 상태를 받아오기 위해서 remote에 upstream을 연결시켜준다.

 

    2. upstream repo로 가서 code 버튼을 누르고 clone과 동일하게 https://~~ 시작되는 주소를 복사를 한다.(여기서 upstream repo에서 가져왔다는 것을 잊지말자)

git remote add [저장이름] [git clone 주소]

ex) git remote add upstream https://~~

이렇게 하면 remote에 upstream이 등록된 것을 확인할 수 있다. 보통 upstream 이라고 많이 저장을 한다.

    3. upstream 자신이 작성한 코드를 merge 시켜 보려면(command 에서)

git status
git add .
git commit -m "message"
git push origin [branch 명]

   - git status : 코드가 수정된 파일들을 보여준다.

   - git add . : 수정된 파일들을 올린다(필요한 파일이름들만 해서 올릴 수 있다)

   - git commit -m "mesaage" : 수정된 파일을 git에 저장을 시킨다. message 부분에서 보통 어떤것을 수정했는지 많이들 쓴다.

   - git push origin [branch 명] : 지금하고 있는 branch를 자신의 git origin repo에 업데이트를 한다.

 

    4. 그 다음 자신의 repo나 upstream repo에서 pull request를 날린다.

    5. 자신의 git origin repo를 가면 pull request 버튼이 있고, pull request를 날린다.

    6. 권한 있는 사람이 code를 확인 하고 merge를 할 수 있다. merge 끝

 

git pull 받기

    - 협업을 하는 상태에서 다른 사람이 code를 수정하고 updata된 upstream을 받아 오려면...

 

    1. git pull upstream [branch 명]

git pull upstream [branch 명]

    - upstream에도 보통 master, dev, 특정 banch 들을 관리를 한다. 프로젝트를 할 때 master는 오로지 배포를 할 때만 수정하거나 merge한다. 그리고 dev는 각자한 code을 merge하고 test를 진행할 때, 많이 사용한다. 특정 branch들은 보통 새로운 것을 시도해보거나 등을 특정 branch를 만들어서 관리(회사마다 관리하는 방식이 다르겠지만)

 

     2. git pull을 하게되면 local 현재 branch로 코드들이 merge가 된다. 이 상태를 내 origin repo에 다시 update를 해서 version이 엇나가지 않도록 주기적으로 해주면 좋다. 만약 한번에 하려고 한다면 merge 충돌을 일으켜서 수정하는데 고생할 수 있다.

 

branch update

   - upstream에 새로운 branch를 만들어서 새로운 시도를 할 때, local에서 branch가 안잡히는 경우가 있다. 이럴 때, upstream의 branch 상태를 update 해줘야한다. 종종 update를 해주면 좋다.

git fetch upstream

 현재 upsteam의 branch 상태를 update를 해준다.

728x90
반응형

'Coding > Git' 카테고리의 다른 글

Git - error: '[directory]' does not have a commit checked out  (0) 2022.03.22
Git - git merge  (0) 2022.02.05