[GIT] git 사용법 기본 (merge, PR)
협업의 기본!
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 안될때 요거 해주면 된당
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
맞춰졌당ㅇ! 나중에 정리하면서,,, 다시해봐야징,,,