[ECC Github 스터디 4주차] 5강. 깃허브로 협업하기
1. 서로 다른 컴퓨터에서 원격 저장소 함께 사용하기
1-1. 원격 저장소 복제
- 클론(clone), 클로닝(cloning): 원격 저장소를 지역 저장소로 똑같이 가져오는 것(복제)
git clone
명령어- 원격 저장소를 복제하면 지역 저장소와 원격 저장소가 자동으로 연결됨
git remote -v
명령어를 통해 원격 저장소에 연결되었는지를 확인할 수 있음
1-2 ~ 1-3. 지역 저장소에서 올리기/ 원격 저장소에서 내려받기
- 올리기
- 원격 저장소의 내용을 복제한 지역 저장소에서 내용을 수정/커밋한 후 다시 원격 저장소에 올릴 수 있음(
git push
) - 해당 커밋을 push하고 이후 해당 원격 저장소를 복제한 다른 지역 저장소에서 작업 시 변경 사항을 업데이트 해야 함
- 원격 저장소의 내용을 복제한 지역 저장소에서 내용을 수정/커밋한 후 다시 원격 저장소에 올릴 수 있음(
- 내려받기
- 하나의 원격 저장소에 지역 저장소가 2개 이상 연결되어 있을 때, 지역 저장소에서 작업하려면 원격 저장소의 변경 사항을 먼저 가져와야 함(
git pull
) git log
를 통해 최신 커밋을 확인 가능
- 하나의 원격 저장소에 지역 저장소가 2개 이상 연결되어 있을 때, 지역 저장소에서 작업하려면 원격 저장소의 변경 사항을 먼저 가져와야 함(
2. 원격 브랜치 정보 가져오기
2-1. 원격 main 브랜치
- 원격 저장소를 만들 때도 main 브랜치가 기본으로 생성됨
- 현재 git log
HEAD -> main
: 해당 커밋이 지역 저장소의 최종 커밋음-
origin/main
: 원격 저장소의 최종 커밋임 - 지역 저장소의 커밋을 원격 저장소에 push하지 않으면 지역 저장소와 원격 저장소 간 브랜치의 버전 차이가 발생함
2-2. 원격 브랜치 정보 가져오기
- 페치(fetch): 원격 저장소의 정보를 가져옴(불러옴)
git fetch
명령어 사용- 다른 사람이 원격 저장소에 올려놓은 커밋을 검토 후 필요할 때만 지역 저장소에 합칠 수 있음
- 변경된 내용만 가져올 수 있음
$ git diff HEAD origin/main
- 현재 최신 커밋과 원격 저장소에서 가져온 커밋의 차이를 살펴볼 수 있음
- 변경된 내용만 가져올 수 있음
- 원격 저장소의 커밋 확인 후 지역 저장소에 합치기
$ git merge origin/main
git pull
명령은 사실상git fetch
명령 +git merge origin/main
을 합친 것과 같은 기능을 수행git fetch
로 원격 브랜치를 가져온 다음,git merge
명령을 통해 원격 브랜치와 현재 브랜치를 합쳐 줌
3. 협업의 기본
3-1. 협업을 위한 저장소 만들기
- 깃허브의 공개 저장소는 주소만 알면 누구든지 접속해서 모든 소스를 살펴볼 수 있음
- 공개 저장소든 비공개 저장소든 승인된 공동 작업자만이 커밋을 올릴 수 있음
3-2. 저장소에 브랜치 만들기
- 협업을 위한 저장소는 파일 꼬임 방지를 위해 주로 사용자 별로 브랜치를 만들어
push
하게 됨
3-3. 공동 작업자 추가
- 교재 p.198 ~ 199
4. 원격 저장소에서 협력하기
4-1. 원격 저장소 복제하기
clone
명령을 통해 지역 저장소에 원격 저장소의 복사본을 만들고, 최신 커밋을 내려받음$ git clone 원격저장소주소 디렉터리명
-
원격 저장소에서 commit된 내역 확인하기
- 해당 커밋은 지역 저장소의 최신 커밋일 뿐만 아니라 원격 저장소의 main과 apple, ms 브랜치의 최신 커밋임
-
원격 저장소를 복제하여 지역 저장소에서 commit을 하기 전에 사용자 인증이 필요
$ git config user.name 이름 $ git config user.email 이메일주소
4-2. 원격 저장소에 커밋 푸시하기
- 공동 작업 시에는 나의 커밋 전에 누군가의 커밋(변경사항)이 있을 수 있으므로 반드시
pull
을 먼저 수행해야 함- 변경 내용이 있다면 내려받아 지역 저장소에 병합해 주기
4-3. Pull Request 보내기/병합하기
- 풀 리퀘스트(pull request, PR): 자신이 푸시한 커밋의 메시지를 남기는 것
- 협업 시 서로 의견을 남기고 확인한 후 커밋을 병합하는 것
- 나머지 내용: 교재 p.207 ~ 210
📚 References
- Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문(5장. 깃허브로 협업하기)