-
내가 이해한 git pull request내가 이해한/버전관리 2022. 1. 20. 11:59
아직 git을 제대로 쓸 줄 모른다
push는 뭔지, pull 은 또 뭐 하는 건지
branch는 뭐고 pull request는 어떻게 쓰는 거지일단 기본적인 것만 써보고 필요할 때 기회가 되면 하나씩 해보자는 생각으로
단순히 main branch에 commit 하며 git을 사용하고 있었다.
그러다 어제 git stash에 대해 알게 되었다.
local과 remote repository 가 충돌 한걸 해결하기 위해 사용했는데,
찾아보다 보니 git stash 보다는 문제가 됐던 pyc 파일이 더 궁금해졌다.
pyc 파일이 언제 생성되는지 테스트하기 위해 새로운 branch를 만드는 방법을 찾던 도중
아래 블로그에서 pull request에 대해 알게 되었다
https://wayhome25.github.io/git/2017/07/08/git-first-pull-request-story/
git 초보를 위한 풀리퀘스트(pull request) 방법 · 초보몽키의 개발공부로그
개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는
wayhome25.github.io
글을 읽다 보니 버전 관리와 협업하기에 좋은 기능이라는 생각이 들어서 바로 찾아봤고,
위 블로그 게시물과 다른 정보들을 참고하여
새로운 개발자가 참여 후 pull request까지 하는 과정을 내가 이해한 대로 정리했다
정리에 사용할 용어 설명도 내가 이해한 대로 작성해봤다
remote : remote repository. 관리자 계정으로 생성한 repository.
forked : remote를 개발자 계정으로 fork 하여 개발자 계정에 추가된 repository.
local : forekd를 개발용 pc에 clone 하여 만든 local repository- remote를 개발자 계정으로 접속하여 Fork 한다.
- private repository 라면 관리자 계정으로 접속하여 개발자 계정을 초대해야 한다 - forked를 개발용 pc에 clone 한다.
- local에 branch를 생성 후 작업한다
- 그냥 main에 해도 되는지는 잘 모르겠다 - 작업이 끝나면 commit 한 뒤, pull request를 생성한다.
- pull request는 remote에 생성된다. - 관리자는 개발자의 commit을 merge 한다
- pull request를 승인하는 것 - 개발자는 merge 된 remote를 forked와 local에 반영한다
여기에서 중요한 것은 local의 작업 내용물을 remote에 반영하고
반영된 내용을 다시 나의 local로 가져오는 부분인 것 같다.
그래서 개발 결과물을 적용하는 부분만 잊지 않도록 스크린샷으로 남겼다.
1. 새로운 브랜치를 만들고 작업한 내용을 가져온다. 브랜치를 만든상태에서 작업을 해도 된다. 2. 방금 생성한 branch 에 commit 한다 3. local 에만 있는 내 branch 를 forked 로 publish 한다(업로드) 4. forked 에 publish 되었으니 이제 pull request 를 생성한다 5.1 pull request 를 생성하는 화면 5.2 pull request 가 생성된 모습. 이전에 생성 후 완료한것이 4개가 있다. 6.1 remote 에서 pull request 를 remote 로 merge 할 수 있다. 6.2 local 에서 생성 후 forked 로 publish 한 branch 를 삭제 할 수 있다. 7.1 remote 는 완료되었으니 변경사항을 forked 로 가져와야 한다. fetch and merge 를 클릭한다 7.2 상단에 성공적으로 fetch 되었다는 메시지가 출력되었다. 8.1 다시 local 로 돌아와서 생성한 branch 를 삭제해줬다. 그리고 fetch origin 을 누르면..? 8.2 local 의 origin 인 forked 에서 변경사항을 모두 가져온다. 이렇게 하면 끝이다. 이렇게 pull request에 대해서 공부하고 실습해봤다.
실제 업무에서는 조금 다른 방식으로 사용할 수도 있을 것 같지만
그건 또 나중에 기회가 생기면 배우는 걸로 하자.
- remote를 개발자 계정으로 접속하여 Fork 한다.