티스토리 뷰

형상관리

Pull Request

DevES 2016. 10. 4. 02:22

Pull Request(이하 PR)


  • PR이란 내가 추가한 변경 사항을 다른 상대의 리포지토리에 적용하고 싶을 경우 사용하는 것
  • GitHub에서 PR을 보내면 해당 리포지토리의 소스코드에 Issue가 생성됨.


  • 개발이 아직 덜끝난 것에 대한 PR이라면 PR 제목에 '[WIP]bulabula~~'라고 [WIP]를 붙여줄 것. (Work In Progress)
    • 작업이 다 끝나면 [WIP]를 지워준다.
  • PR을 할때 토픽 브랜치를 하나 생성해서 작업후 그 토픽 브랜치에서 PR을 보내자.
    • PR보내고 나서도 그 토픽 브랜치에서 작업후 푸시하면 PR에 연결됨.


  • Fork 리포지토리 최신 상태로 유지하는 방법

    • fork나 clone을 하고나서 리포지토리를 계속 방치해두면 최신 버전의 소스 코드와 멀어지게됨.
    • 보통 clone한 리포지토리는 원본 리포와는 다른 것임.
      • 따라서 원격 리포를 기본 리포로 설정하고 데이터를 가져온(fetch) 다음, 
      • 자신의 리포에 merge해서 최신 코드 상태를 유지함.
    • ----------------------------------------------------------------------------------------------------
    • 1. 상대의 원본 remote repository(octocat/Spoon-Knife)를 Fork해온다.(EminentStar/Spoon-Knife)
    • 2. 나의 remote repo.(EminentStar/Spoon-Knife)에서 Local repo(master)로 clone을 한다.
    • 3. 원본 리포지토리의 이름을 설정한다.
      • $ git remote add upstream git://github.com/octocat/Spoon-Knife.git
        • 새로운 remote의 이름을 upstream으로써 해당 git주소로 매핑하여 추가한다는 의미임
    • (이제 upstream으로 부터 최신 소스코드를 받고(fetch) 자신의 리포에 merge를 해야한다. 이는 리포를 최신 상태로 유지할 때 기본적으로 사용하는 코드이므로 기억해야함)
    • 4. upstream으로 부터 최신 코드를 fetch한다.
      • $ git fetch upstream
    • 5. upstream/master 브랜치를 merge한다.
      • (현재 master브랜치) $ git merge upstream/master
    • 이렇게 최신상태로 만든후에, 변경사항을 추가하려면 따로 토픽 브랜치를 만들고 개발한다.
    • 본질적으로 master브랜치는 항상 완벽하게 최신 상태를 유지해야함.


보통의 오픈소스를 개발하는 방법

  1. GitHub 상에서 Fork
  2. 1번의 repository를 local 환경에 clone
  3. local 환경에서 토픽 브랜치를 작성
  4. 토픽 브랜치에서 코드 변경
  5. 토픽 브랜치를 1의 repository로 push
  6. GitHub 상에서 Fork했던 리포지토리로 Pull Request 작성


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함