git 원격 저장소를 이용한 협업

Yoon·2023년 1월 8일
0

git

목록 보기
10/13

협업을 하지 않을때는 원격 저장소를 혼자만 쓰므로, 자신이 변경사항을 주지 않는다면 원격저장소는 달라지는 것이 없다.

협업 시나리오

협업은 세 가지 시나리오가 존재한다.
1. 내 로컬 저장소는 변했는데 원격 저장소는 변함이 없는 경우 (pull & push)
2. 내 로컬 저장소는 변함 없는데 원격 저장소는 변한 경우
3. 내 로컬 저장소도 변했는데 원격 저장소도 변한 경우 (pull request)

1번의 경우에는 코드작성하고 그냥 push 하면 되는 경우이다.

2번의 경우에는 git pull로 동기화 후 push 하면 된다.

3번의 경우에는 2가지 방법이 있다.
- rebase
- pull request (-> merge)


pull request

pull request를 하기 위해 단계가 있다.

  1. Fork
  2. clone, remote 설정
  3. Branch 생성
  4. 수정 작업 후 add, commit, push
  5. Pull Request 생성
  6. 코드리뷰, Merge Pull Request
  7. Merge 이후 branch 삭제 및 동기화

1. Fork

  • 타겟 프로젝트의 저장소를 자신의 저장소로 Fork 한다.

2. clone, remote 설정

  • fork로 생성한 본인의 계정의 저장소에서 clone or download 버튼을 누르고 표시되는 url을 복사한다. (중요 - 브라우저 url을 그냥 복사하면 안된다)

  • 자신의 컴퓨터에서 작업을 하기 위해서 Fork한 저장소를 로컬에 clone한다.
git clone [깃 주소]

3. branch 생성

  • 자신의 로컬 컴퓨터에서 코드를 추가하는 작업은 branch를 만들어서 진행한다.
1. 깃 브랜치 생성
	git branch [브랜치 명]
2. 깃 브랜치 조회
	git brabch
3. 깃 브랜치 변경
	git checkout [브랜치 명]

4. 수정 작업 후 add, commit, push

  • 작업 후 add / commit / push 를 한다.
  • 주의 사항으로는 push 진행시에 branch 이름을 명시 해 주어야 한다.
git push origin [브랜치 명]

5. Pull Request 생성

  • push 완료 후 본인 계정의 github 저장소에 들어오면 Compare & pull reqeust 버튼이 활성화 되어 있다.
  • 해당 버튼을 선택하여 메시지를 작성하고 PR을 생성한다.

6. 코드리뷰, Merge Pull Reqesut

  • PR을 받은 원본 저장소 관리자는 코드 변경내역을 확인하고 Merge 여부를 결정한다.

7. Merge 이후 동기화 및 branch 삭제

  • 원본 저장소에 Merge가 완료되면 로컬 코드와 원본저장소의 코드를 동기화 한다.
  • 작업하던 로컬의 branch를 삭제한다.
#코드 동기화
	git pull <remote >
# 브랜치 삭제
	git branch -d <브랜치 >

rebase

뜻 : 현재 내가 작업하고 있는 branch의 base를 옮긴다. 라는 뜻을 가짐.

base : 현재 내가 작업하고 있는 branch와 합치려는 branch의 공통 조상

위 그림에서 branch1의 조상은 B2를 의미한다.
이 경우에서 master 브랜치로 rebase 한다는 의미는 B2에서 M2 브랜치로 옮긴다는 것이다.

즉, 합치고자 하는 branch의 최신 commit으로 base를 옮긴다는 의미.

git rebase [rebase하고자 하는 곳]
profile
나의 공부 일기

2개의 댓글

comment-user-thumbnail
2023년 1월 13일

좋은 내용 배워갑니다

1개의 답글