GIT 49

37. [Git] pull request의 종류

지금까지는 Merge pull request의 내용을 학습했습니다. 하지만 Merge pull request 외에도 pull reqeust에는 Squash and merge, Rebase and merge방식이 존재합니다. Merge pull request는 모든 commit을 남기는 반면에 commit history를 쫒는데 어려움이 있을 수도 있습니다. 이럴 때 나온 게 Squash and merge, Rebase and merge 이 2가지 개념일지도 모르겠네요. Squash and merge는 EXP의 모든 커밋 내용을 전부 반영하는 것이 아니라 하나 반영하는 방식입니다. Rebase and merge는 M2에서 E1의 내용을 적용한 ME1 버전을 만들고 ME1에 E2내용을 적용해 ME2 버전을 ..

Git&Github 2021.09.06

36. [Git] pull request 충돌해결하기(로컬 환경)

지난 실습에서 master 브랜치를 초기화하고 다시 충돌을 발생시켜 보겠습니다. 우선 마스터 브랜치로 이동하여 pull을 통해 버전을 최신화시키고 아래와 같이 수정합니다. git checkout master git pull origin master git commit -am "init" number-to-alphabet-4 브랜치를 생성합니다. git checkout -b number-to-alphabet-4 1 -> one으로 수정하고 원격 저장소(number-to-alphabet-4)에 push 합니다. work.txt에서 1->one으로 수정 git commit -am "one" git push origin number-to-alphabet-4 그리고 원격 저장소로 이동해서 pull request ..

Git&Github 2021.09.06

35. [Git] pull request 충돌해결하기(web editor)

pull request를 이용하여 작업 중 충돌이 발생하면 어떻게 해결하는지 알아보겠습니다. 아래와 같은 master가 있습니다. number-to-alphabet-3이라는 브랜치를 만들고 one을 1로 수정해서 pull request를 생성해 보겠습니다. git checkout -b number-to-alphabet-3 work.txt의 one을 1로 수정 git commit -am "1" git push -u origin number-to-alphabet-3 원격 저장소로 이동 > Compare & pull request 클릭합니다 Create pull request 클릭합니다 github는 pull request받은 브랜치와 병합할 브랜치와 비교 후 병합에 문제가 없는 경우에만 Merge pull ..

Git&Github 2021.09.05

34. [Git] pull request 소통하기

우선 pull request를 생성하겠습니다. master에서 number-to-alphabet-2라는 브랜치를 생성합니다. git checkout -b number-to-alphabet-2 four, five라는 버전을 생성하고 원격 저장소에 push 합니다. 원격 저장소에 접속하면 아까와 동일하게 pull request 할 수 있는 버튼이 생성됩니다. 이번에는 Pull requests 탭을 이용해서 해보겠습니다. Pull requsets > New pull request를 클릭합니다. 그러면 이렇게 생긴 화면이 표시되는데 compare 부분을 클릭해서 병합할 브랜치를 선택합니다. number-to-alphabet-2를 클릭합니다. 그러면 다음과 같은 화면이 표시됩니다. Crete pull reques..

Git&Github 2021.09.05

33. [Git] pull request 만들기

실습환경 준비는 아래 사이트를 참고 바랍니다. https://like-a-drizzle.tistory.com/212 32. [Git] pull request 실습환경 만들기 pull request 하기 위한 실습환경을 만들어 보겠습니다. 원격 저장소 하나를 생성합니다. 원격 저장소를 생성했습니다. 이 저장소에 동료를 하나 초대합니다. Settings > Manage access > Invite a collaborator.. like-a-drizzle.tistory.com pull request 할 내용이 생기면 브랜치를 만든 사람에게는 아래와 같은 화면이 표시됩니다. 버튼을 클릭해보겠습니다. 클릭하면 이런 화면이 표시됩니다. 1. number-to-alphabet 브랜치 내용을 master 브랜치에 병합..

Git&Github 2021.09.05

32. [Git] pull request 실습환경 만들기

pull request 하기 위한 실습환경을 만들어 보겠습니다. 원격 저장소 하나를 생성합니다. 원격 저장소를 생성했습니다. 이 저장소에 동료를 하나 초대합니다. Settings > Manage access > Invite a collaborator 초대할 유저 닉네임을 입력하고 초록색 버튼을 클릭합니다. pples0925를 원격 저장소에 협업자로 초대했다는 메시지가 상단에 표시되고 현재 상태는 pending Invite 대기 중인 상태로 표시됩니다. 초대받은 유저의 메일로 가보면 github에서 온 메일이 있는 아래 초록색 버튼을 누릅니다. 그러면 초대받은 원격 저장소로 이동하게 되고 협업에 참여할꺼면 Aceept invation을 누르고 협업에 참여하지 않을 거면 Decline을 누릅니다. 초록색 버..

Git&Github 2021.09.05

31. [Git] pull request란?

pull request pull request는 다른 서비스에서는 merge request라고도 불리는 기능입니다. 독립적으로 진행되던 브랜치의 작업을 다른 브랜치에 병합해달라고 요청하는 기능입니다. 대표적인 경우는 이렇습니다. master 브랜치의 마지막 버전은 언제나 실행/배포 가능한 상태를 유지하기로 협의한 팀이 있습니다. 모든 작업은 별도의 브랜치를 만들어서 그곳에서 작업을 진행하기로 했습니다. 이런 브랜치를 토픽 브랜치, 기능(feature) 브랜치라고 합니다. 모든 작업이 끝나고 토픽 브랜치를 master로 병합할 때 다른 사람들의 검토를 받도록 하고 싶다면 어떻게 해야 할까요? 이때 사용할 수 있는 최고의 기능이 pull request입니다. pull request를 이용하면 브랜치에서 만들..

Git&Github 2021.09.05

30. [Git] 협업에서 rebase 이용하기

왼쪽, 오른쪽에서 각각 다른 사람이 협업하고 가정하겠습니다. 우선 왼쪽에서 파일을 만들어서 원격저장소에 push 합니다. 왼쪽에 2개의 버전을 만들어 L1까지만 원격 저장소에 저장된 상태입니다. 오른쪽에서 pull 해서 버전을 가져와 보도록 하겠습니다. 원격 저장소에 저장된 L1까지 받아온 게 보입니다. 이 상태에서 왼쪽은 push를 하고 오른쪽은 right.txt라는 파일 만들어서 commit 하겠습니다. 로그를 확인해보면 왼쪽은 L2까지 원격 저장소에 push 하였고 오른쪽에는 아직 L2에 대한 정보가 없습니다. 오른쪽에서 fetch를 해서 로그 이력을 최신화하겠습니다. 오른쪽 작업자의 로그를 확인해보면 L1브랜치에서 L2와 R1으로 분리된 것을 확인할 수 있습니다. 이대로 merge를 해서 L2 내..

Git&Github 2021.09.03

29. [Git] rebase 충돌의 원인과 해결

topic의 t1, t2, t3의 버전 이후에 master의 m1 버전이 오도록 rebase 하는 작업을 해보겠습니다. (cherry-pick 개념과 비슷한 점이 많습니다.) rebase 하게 되면 파란색으로 칠한 부분의 3 way-merge가 일어나게 됩니다. rebase를 실행하게 되면 아래와 같이 처리해준 뒤 빨간색으로 적힌 부분을 사용자가 직접 수정해야 합니다. 이렇게 진행하면 새로운 버전이 생성되고 HEAD가 이동되게 됩니다. 그다음에는 파란색으로 체크한 부분을 3 way-merge 해서 새로운 버전을 생성합니다. 빨간색으로 체크한 부분에 충돌이 발생합니다. t2, m2를 mt2로 처리해주고 새 버전을 생성하면 HEAD가 앞으로 이동하게 됩니다. 이렇게 되면 타임라인이 더 알기 쉽게 됩니다. 실..

Git&Github 2021.09.03

03. [Git 뿌수기] 3주차 내용 정리 (pull, clone, branch, merge, conflict)

pull 파일 다운로드 원격 저장소에서 로컬 저장소로 업데이트하려면 풀(pull)을 실행합니다. pull을 실행하면, 원격 저장소에서 최신 변경 이력을 다운로드하여 내 로컬 저장소에 그 내용을 적용합니다. 로컬 저장소에 pull 한 데이터가 어떻게 반영되는지 아래 그림을 참고합니다. 아래 그림에서 윗 그림 내용을 pull 하면 fast-forward병합이 이루어집니다. 그림 속에 master는 로컬 저장소의 master 브랜치, origin/master는 원격 저장소 origin의 master브랜치를 나타냅니다. 그러나 원격 저장소의 master 브랜치와 로컬 저장소의 master 양쪽에 변경 사항이 생긴 경우는 충돌이 발생하고 수동으로 통합할 필요가 있습니다. $ git pull // 예시 $ git ..

Git 뿌수기 2021.09.02