AI 웹개발반/Git 활용

[TIL] 오늘 공부 정리, git협업 pull&request 하기

째깍단 2023. 4. 11. 22:24

>오늘 할 일 

 

[O] : 팀프 틀 짜고 기능 1개 이상 구현하기

    ㄴ 틀.... 꼭 완성

    ㄴ 유저에서 foreingky로 받아오기 

    ㄴ 게시글에서 foreignkey로 받아오기

[O] : 알고리즘 연습문제 풀이 = 2개나 풀었성

[△] : Django 튜토리얼 5까지 진행

 ㄴ 핑계오브핑계지만 진짜 아프다..ㅠㅠ

 

 

 

 

 

1. 알고리즘 풀기 :

 

점의 위치 구하기 / 최댓값 구하기 풀이함

 

 

 

 

2. git hub 사용하여 팀 협업 참여

 

1) 해당 프로젝트를 fork해온 후 터미널에서 작업!

 

 

2) clone으로 프로젝트를 먼저 로컬저장소에 복사해오고,

내 레포지토리에 있는 fork 프로젝트의 https/ssh 주소를 복사한다.

git clone 프로젝트명

 

git init  (https/ssh code)

-> 이미 .git으로 연결되어있다면 생략가능하다고 함

 

 

원격저장소와 내 로컬을 연결하고..

 

git remote add origin 주소

 

git branch 작업할브랜치명

 

브랜치를 생성하고 브랜치 내에서 작업을 진행한다.

 

 

git fetch

 

 

만약 팀원이 소스를 수정했다면 fetch로 소스코드를 가져오고 충돌을 해결하여 적용한다.

 

이후 작업해둔 브랜치를 merge하고 새로운 브랜치를 생성해 작업하거나

rebase를 통해 브랜치에서 작업을 이어나갈 수 있다.

** merge, rebase는 메인 브랜치에서 실행해야 작동한다!

 

 

+++ git fetch 및 소스코드 병합 상세

 

:  fork해온 자료에 commit이 생겼을때..

 

 

1) 원격 저장소 확인하기

git remote -v

변경사항이 있는지등등을 확인할 수 있다.

 

 

 

2) fetch로 origin내용 받아오기

git fetch (원격저장소의 프로젝트명)

 

fetch로 원격저장소에는 있지만 로컬저장소에 없는 커밋들을 받는다.

 

 

3) merge

새로이 받아온 소스코드들을 내 로컬 파일에 머지한다

git merge origin/main

 

 

4) 앗 merge한 내용이 내 브랜치에는 적용되지 않는다..!

그러므로 이때 rebase를 쓴다.

 

* merge는 main과 병합된 merge commit이 생성된다

git checkout main
git merge mybranch

 

* rebase는 충돌내용을 제외하고 합쳐진다.!

git checkout main
git rebase mybranch

 

 

rebase를 활용해보쟈

 

- 내 브랜치를 작업하는 동안 main브랜치가 변경되었고 병합하려했으나 충돌이 날때

내 브랜치에서 main브랜치를 rebase하고 main으로 merge한다.

이러면 merge commit이 나지않는다.

 

- 변경된 main브랜치의 내용을 현재 내 작업브랜치로 들고오고 싶을때

 

 

+++

해석 : 가져온 자료를 어떤방식으로 합칠지 결정해달라는 메시지.

merge / rebase / fast-forward only 세가지 방식으로 할 수 있다.

 

git pull --rebase로 merge해주었다.

이후 충돌 해결하고 작업 재시작.

 

 

 

 

 

 

 

3. 장고 튜토리얼 진행 중...

... 새로이 알게된 것들은 내일 정리해서 올리도록 하자.

 

 


 

날춥고 컨디션 안좋다 했더니 몸살이 났다ㅜㅜ

 

빨리... 해결...