Cli로 pull request하는 방법을 알아보겠습니다 *^-^*
순서
0. 전체적인 흐름 이해
1. fork
2. clone
3. branch 생성
4. 코드 수정
5. pull request
6. merge pull request
7. merge후 동기화 및 branch 삭제
0. 전체적인 흐름 이해
pull request를 자세히 알아보기전 순서도를 먼저! 살펴보겠습니다
크게 살펴보자면
먼저 공유할 레포지토리를 로컬의 내 레포지토리로 가져온 후,
내 레포지토리에서 브랜치를 생성하여 코드를 수정합니다
그리고 다시 깃허브에 업로드 합니다
이때 원본 코드와 내가(또는 팀원이) 수정한 코드를 합치기위해
협력자에게 branch 병합을 요청하는 메세지를 보내는 것이 pull request입니다
*유의사항
로컬과 원격 구분하기
원격 레포지토리와 원본 레포지토리 구분하기
1. fork
타겟 레포지토리(=원본 레포지토리)를 내 레포지토리로 가져옵니다
1) 협업할 레포지토리에 들어가 fork 클릭
2) fork할 곳 선택
3) fork 완료
2. clone
현재 로컬(=내 컴퓨터)엔 fork한 레포지토리 공간이 없으므로 로컬에 공간을 만들어줍니다
1. 내 레포지토리 HTTPS 복사
2. clone 시작
$ git clone (복사해온 HTTPS)
*clone은 init, remote, fetch를 모두 합한 명령어
3. 원본 레포지토리 HTTPS 복사
원격(=remote=gitHub)에 있는 원본 레포지토리와 로컬도 연결해줍니다
4. 원격의 원본 저장소와 로컬 연결
원본 저장소를 원격 저장소에 추가합니다
$ cd (git 파일 생성된 곳)
$ git remote add (별칭) (원본 레포지토리 HTTPS)
5. 중간 확인
원격 저장소 설정이 잘 되어있나 확인을 해봅니다
#원격 저장소 확인
$ git remote -v
3. branch 생성
협업 시 각자 역할을 수행하기 위해선 branch를 생성 해야합니다
1. branch 생성 및 이동
$ git checkout -b (branch 이름)
#브랜치 확인
$ git branch
4. 파일 수정
이제 각자 역할을 수행합니다
1. 코드 수정 및 저장
2. branch 생성 후 add, commit, push
지겹도록 했던 add, commit, push를 합니다
그 전에!!!
이때 여기서난 오류의 원인은 생성한 branch가 로컬에만 있기 때문인데요
*아까 수행한 git branch -b (브랜치 이름)은 로컬에만 브랜치가 생성되는 명령어
따라서 branch도 원격에 올려주기위해 push를 해야줘야합니다
따라서 정리하자면
#브랜치 push
$ git push -u origin feature/ynawhocodes
#add, commit, push
$ git add .
$ git commit -m "ynawhocodes commit"
$ git push origin feature/ynawhocodes
#확인
$ git status
5. pull request
1. compare & pull request 클릭
이제 충돌을 해결해보려고 합니다
2. 코드 리뷰 작성 후 create pull request 클릭
코드리뷰를 꼼꼼하게 적어줘야 팀원들이 이해하기 쉬워요
3. file changed를 클릭하여 코드 수정부분을 확인
6. merge pull request
원본 레포지토리 관리자는 pull request를 확인하고 merge를 해야합니다
7. merge 후 동기화 및 branch 삭제
merge를 다했으면 merge된 코드를 로컬로 가져와야합니다(=동기화)
그리고 필요없는 branch는 삭제합니다
# 코드 동기화
$ git pull (원본 레포지토리 별칭)
# 브랜치 삭제
$ git branch -d (브랜치 이름)
위의 상황에서는
$ git pull real-init_homework
$ git branch -d feature/ynawhocodes
이후 협업을 계속할 경우
3~7을 반복하면 되겠죠?
-끝-
'Git' 카테고리의 다른 글
GitHub organization public 설정 방법 / 공개 organization 설정 방법 (0) | 2021.03.22 |
---|---|
유진이를 위한 git 요약 (0) | 2020.11.20 |