풀 리퀘스트 (Pull Request)
- 원격 저장소가 내 변경사항을
pull
하도록 요청을 보내는 방식
push
권한을 주는 콜라보레이터와는 다르게 요청만을 보내는 것이기 때문에,
owner가 검토 후 merge
할 수 있어서 관리하기에 용이하다.
1. 기여하려는 저장소를 본인 계정으로 포크하기
fork
: 원격저장소를 내 계정으로 복사해오는 것.
- 내가 owner가 아닌 저장소에는
push
권한이 없지만,
내 계정으로 fork
해 온 복제 저장소에는 push
권한이 생기기 때문에 fork
를 하는 것.
2. 포크한 저장소를 클론하기
- 원본 저장소가 아닌 fork 해 온 저장소를
clone
해야 함!
clone
: 원격저장소의 모든 버전을 내 local로 복제하는 것.
3. 브랜치 생성 후 생성한 브랜치에서 작업하기
commit
까지 완료하기.
checkout Branch
: 브랜치를 이동하는 것.
4. 작업한 브랜치 푸시하기
- main이 아닌, 생성한 브랜치를
push
해야함.
- 여기까지 완료하면 버튼이 생성됨.
5. 풀 리퀘스트 보내기
- 풀 리퀘스트를 날릴 때는 내가 어떤 작업을 했는지 먼저 확인하기
Commit Message
- 중요한 의사소통 수단
- 자세하게 작성할수록 좋음
- 버전관리를 제대로 할 수 있음
Owner 입장에서의 pull request
files changed
에서 어떤 작업을 했는지 우선적으로 확인
pull requests
에서 댓글 다는 것도 가능하고 논의하는 것도 가능.
merge
과정에서 충돌(conflict) 발생 가능
- 같은 내용을 다르게 수정했을 경우 충돌이 생김 (당황하지 말기)
충돌 발생 시 해결 방법
(merge, revert, stash 등 여러 상황에서 발생 가능)
1. 선별하기
2. 다시 커밋하기
싱크 포크(Sync Fork)
- 포크 이후에 쌓인 원본 저장소에 밀려있던 커밋들 로컬 환경으로 반영 가능
소스트리 vs 명령어
- 소스트리는 보조도구이고, 명령어는 깃 그 자체.
- 소스트리로 쉽게 사용 가능하지만 설치할 수 없는 환경에 대비하여 명령어를 익히자.
- 소스트리로 한 번 기초를 배웠으면 그 후에는 명령어를 익혀서 사용하는 것을 추천.