Git

[GIT] git 사용법 기본 (merge, PR)

Eunice99 2023. 1. 6. 11:57

협업의 기본!

 

https://youtu.be/4TQcKKxiGes

 

git pull이란?

동료가 깃헙 레포에 푸시했다?

-> local에 어떻게 업데이트하지?

내가 깃헙 레포에 푸시했다?

-> 동료가 어떻게 업데이트하지?

: 깃헙 레포를 동료랑 같이 쓰는데, 동료가 작업한 부분을 push했다. 깃헙에 레포는 내 컴퓨터에 있는 레포랑 다르게 커밋이 다를테니, 깃헙에 있는 작업들을 내 컴퓨터에 동기화 시키는 작업이 git pull

 

branch란?

많은 사람이 main 브랜치에 동시다발적으로 push하면? 충돌이 안날까?

-> 개발 기능별 브랜치를 나눠서 맡은 부분을 각자 다른 브랜치 내에서 개발하기!

(나중에 이 브랜치를 합치는 과정이 merge)

 

리모트 저장소

내 커밋기록, 수정내용 어떻게 공유하지?

: 그냥 깃허브라고 보면된다. 내가 뭘 작업할건지, 내가 작업한것들을 어디에 보관할건지!

 

브랜치를 왜 나눔?

-> 똑같은 파일을 깃허브 레포에 push하게 되면 충돌이 날수도있기때문! 

혼자 작업할때도 메인 브랜치는 보호받아야함!

 

merge란?

파란색 : 메인 브랜치

초록색 : 기능 브랜치

--- 기능 브랜치에서 작업한후에 머지로 합침! 

merge방법

1. 내 레포의 Collaborators로 등록하여 내 레포에서 바로 작업할 수 있도록 하는 방법 (공동 작업자)

2. 팀원이 내 레포를 Fork한 후 매번 PR을 날리는 방법

 

 

PR이란?

pull request의 줄임말로 위 사진을 확대하여 아래 사진처럼 머지 커밋을 하기 바로 전에 변동사항을 확인한후 팀원들이 보고 문제없으면 막힌 부분을 열어주어서 머지를 하는것! 

 

그러면 왜 하는것?

자연스럽게 코드리뷰가 가능함!

오픈소스 프로젝트에 기여할수도있음 

merge전에 코드를 확인하고 각 코드별 코멘트도 가능

merge를 신중하게 할 수 있으며, merge할 때 팀원들이 확인하는 규칙을 정할 수 있음

--> 즉 코드 안정성을 높일 수 있다.

 

<실전>

1. vscode online에서 push 해보기.

그냥 github.dev라고 치면 나온당

2. local에서 pull 받아보기

-->내용 변경하구 커밋 및 푸시 누르면

hello가 추가된것을 볼수있당

(원래는 안녕하세요만 있었움)

git pull origin 해주면 local에 있는 리드미 파일도 변경된것을 알수있당

3. 로컬에서 브랜치 생성 후 commit & push 해보기 

(새로운 브랜치 생성 시 위치하고 있는 브랜치 확인 중요. 즉 기존 브랜치를 copy한다 생각)

 

내가 어디 브랜치에 위치하고 있는지 확인

git branch

 

새로운 브랜치 생성

git branch 생성하고싶은 브랜치 이름

ex) test라는 브랜치를 생성하고 싶다면? --> git branch test

 

브랜치 이동

git checkout 이동하고싶은 브랜치 이름

ex) test라는 브랜치로 이동하고 싶다면? --> git checkout test

새로운 브랜치 생성하고 푸시하기 

git push origin 생성한 브랜치

ex) test 브랜치를 생성했다면? --> git push origin test

test 브랜치가 생성됐당

4. PR 날려보기

자자 이제 merge를 해볼것이다.

 

- compare & pull request 해도 되고,,,

- pull request 눌러서 

- new pull request 눌러주면

- view pull request 들어가면

- merge pull request를 눌러줭

merge하면 브랜치를 바로 삭제해줄수도있당

(원래 merge하면 브랜치 삭제가 원칙이당)

브랜치 삭제까지 완료~!

 

 

 

cf) 아우 중간에 파일 변경해서 안댓내 휴,,,,

그 동기화시킬때 pull 하고싶은 브랜치 이름을 적어주어야한당,,,

test 브랜치를 local에 맞추고 싶으면 

git pull origin test 해주면댐

 

+ 코드로 머지할경우

main 브랜치에서 test 브랜치를 머지해주면된다.

 

어우 됐당!

 

git push 안될때 요거 해주면 된당

https://wotres.tistory.com/entry/git-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%EB%B2%95-git-push-setupstream-origin-master

 

git error 해결법 : git push --set-upstream origin master

$ git push git push 명령어를 입력하였을때 아래와 같은 에러가 나는 경우가 있다. fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin m

wotres.tistory.com

 

맞춰졌당ㅇ! 나중에 정리하면서,,, 다시해봐야징,,,