네이버 이웃 추가 / GitHub Profile / 카카오톡 채널 추가 / 방명록 / 이용 안내

[Git 설치 및 사용법]4. 원격 저장소(GitHub) 사용하기

수성컴 | 2022. 09. 21.
[Git 설치 및 사용법]4. 원격 저장소(GitHub) 사용하기

수성컴전자방입니다. 지난 글에 이어서 Git에서 원격 저장소를 사용하는 방법을 알아보겠습니다. 원격 저장소는 여러 가지가 있는데, 이 글에서는 GitHub를 사용해 보겠습니다.

목차

1. 설치
2. Git 기본적인 사용법(init, status, add, commit)
3. branch

4. 원격 저장소(GitHub) 사용하기(현재 글)
4.1. git remote add
4.2. git push
4.3. git remote remove
4.4. git clone
4.5. git pull
4.6. 타인의 오픈소스에 기여하기(fork와 pull request)
4.7. 협업 방법(fork 없이 pull request)
4.8. GitHub repository 공개/비공개 설정, 삭제
4.9. 글 마무리
4.10. 참고 자료

4.1. git remote add

GitHub Repositories 탭
4.1.1. https://github.com에 접속 후 로그인합니다.
4.1.2. 좌측 사이드바의 New를 클릭하거나 자신의 Repository 목록에서 New를 클릭합니다.

Create a new repository
4.1.3. Repository name, Description(선택), 공개/비공개 여부 등을 설정한 뒤 Create repository를 클릭합니다.
참고로 공개/비공개 설정은 추후 repositories의 Setting 탭→(좌측 General 탭)→아래로 스크롤→Danger Zone에 있는 Change repository visibility에서도 변경하실 수 있습니다.

Code 탭
4.1.4. repository를 처음 만들고 나면 자신의 repository 주소를 확인할 수 있습니다. 복사합니다.

초록색 Code 단추
참고)repository 내에 파일들이 있어서 위의 스크린샷과 다르게 나오는 경우 Code라고 적힌 펼침 단추를 누르시면 주소를 복사하실 수 있습니다.

터미널에서 remote add
4.1.5. 터미널에서 git remote add origin repository주소 명령을 실행합니다.
여기서 ‘origin‘은 원격 저장소명입니다. 꼭 GitHub repository명을 쓸 필요가 없고 보통 ‘origin’을 많이 씁니다.
git remote -v 명령을 실행하면 원격 저장소에 대한 자세한 목록을 볼 수 있습니다.

4.2. git push

push
4.2.1. git branch 명령을 실행하여 현재 branch명을 확인합니다. 초록색 글씨가 현재 branch입니다.
4.2.2. git push origin branch명 명령을 실행합니다.

Connect to GitHub
4.2.3. Sign in with your browser를 클릭하겠습니다.(다른 방법도 있음.)

Authorize Git Credential Manager
4.2.4. Authorize GitCredentialManager를 클릭합니다.

Authentication Succeeded
로그인 성공입니다.

터미널 보니 push도 됨
터미널을 보니 push도 진행된 것을 확인하실 수 있습니다.

GitHub에 파일들 올라옴.
GitHub repository를 보니 파일들이 업로드되었습니다.

4.3. git remote remove

remove
원격 저장소 연결을 해제하려면 git remote remove origin 명령을 실행합니다.
(원격 저장소명을 다르게 설정했으면 git remote remove 원격저장소명 명령을 실행합니다.)

4.4. git clone

clone
원격 저장소에 있는 파일들을 자신의 PC 디렉토리로 내려받으시려면(복제하시려면) git clone repository주소 명령을 실행합니다. 이 명령을 실행하고 나면 해당 repository가 원격 저장소 origin으로 자동 연결됩니다.(따로 remote add를 할 필요가 없음.)

clone 완료
현재 경로에 repository명의 폴더가 생겼습니다.

생긴 폴더 내부에 파일 있음
그 폴더를 들어가 보면 파일들이 잘 내려받아졌습니다.

log
cd 폴더명 명령을 통해 해당 폴더로 이동하고, git branch나 git log 명령을 실행해 보시면 branch와 수정 이력 등 git 관련 정보도 내려받아진 것을 보실 수 있습니다.

4.5. git pull

clone은 원격 저장소에 있는 파일들을 자신의 PC 디렉토리로 그대로 복제하는 것이라면, pull은 원격 저장소에 있는 파일들을 가져와서 PC branch와 병합(merge)해 줍니다. 처음 작업을 시작할 때는 clone 명령어를 사용해서 원격 저장소의 파일들을 내려받으면 되지만, 여러 명이 협업하느라 작업 중간중간 원격 저장소의 파일들을 가져와야 할 때는 기존 작업 내용을 유지해야 하죠. 이때 pull을 하면 본인이 작업하던 내용과 원격 저장소의 내용이 병합되어 PC 디렉토리에 받아집니다.
(단, 기존에 작업하던 내용을 미리 add 및 commit 해 주세요.)

pull
git pull origin branch명 명령을 실행해서 원격 저장소의 내용을 가져오실 수 있습니다.
(변경 사항이 있다는 것을 안다면 fetch 명령과 status 명령을 생략하고 바로 pull을 해도 됩니다.)

4.6. 타인의 오픈소스에 기여하기(fork와 pull request)

주의: 기여 관련 내용(4.6절)은 제가 실제로 해본 건 아니고 인터넷 검색을 통해 알게 된 것을 메모한 것입니다.

타인의 오픈소스에 기여할 때 ‘Fork’라는 기능을 쓴다고 합니다. Fork를 하면 타인의 repository가 본인의 repository에 추가됩니다.

4.6.1. GitHub에서 타인의 repository를 갖다가 작업하고 싶으면 Fork를 합니다. 이때 보통 원본 repository를 ‘upstream‘이라고 하고, 본인이 Fork해서 자신의 repositories 목록에 생긴 repository를 ‘origin‘이라고 합니다.
4.6.2. origin(본인이 Fork해서 자신의 repositories 목록에 생긴 repository)을 clone합니다.
git clone origin주소
4.6.3. git remote add upstream upstream주소
4.6.4. 작업(add, commit, branch 포함.)
4.6.5. push 하기 전 git pull upstream branch명 명령 실행
4.6.6. push 할 때는 git push origin branch명 명령 실행→GitHub에서 자신의 repository로 접속→Compare & pull request
4.6.7. upstream(원본 repository) 주인이 해당 pull request를 승인하면 원본의 master에 적용됩니다.
4.6.*. upstream(원본 repository)에서 수정된 것이 있을 경우 git pull upstream branch명 명령을 실행해서 원본 repository의 수정 내용을 가져오실 수 있습니다.

4.7. 협업 방법(fork 없이 pull request)

특정 인원끼리 협업하려면 collaborator를 추가해 주면 됩니다. 4.6절에서는 origin과 upstream을 나누었지만, 여기서는 원본 repository 주소를 origin으로 하겠습니다. 이 문단에서는 Fork를 하지 않습니다. 원본 repository를 공동 사용하는 대신 branch를 나누어 보려고 합니다.

안내
2022. 12. 22. 수정 이후 번호들이 바뀌었으니 유의하시기 바랍니다.
빨간색: 원본 repository 주인이 할 일
파란색: 다른 팀원(초대받는 사람)이 할 일
스크린샷에 약간의 모순이 있을 수 있습니다. 양해 부탁드립니다.

GitHub-Settings화면

4.7.1. 원본 repository 주인이 공유할 repository의 Settings로 들어갑니다.
4.7.2. Collaborators로 들어갑니다.(처음 들어갈 경우 비밀번호 입력 필요)
4.7.3. Add people을 클릭합니다.

Add a collaborator to

4.7.4. 초대할 사용자의 username 또는 전자 우편 주소를 입력한 후 클릭합니다.
(위의 스크린샷에 나오는 username은 이 글 작성을 위해 임시로 만든 계정입니다.)

Add to this repository

4.7.5. 초록색 단추(Add ... to this repository)를 클릭하여 초대해 줍니다.

Pending Invite

4.7.6. 이제 Collaborators 목록에 방금 추가한 사용자가 Pending Invite로 표시되어 있는 것을 보실 수 있습니다.

알림클릭

4.7.7. 이제 이 초대를 수락할 사람은 자신의 계정으로 로그인한 뒤 오른쪽 위 알림 아이콘(종 모양)을 클릭합니다.
4.7.8. 초대 알림을 클릭합니다.

알림클릭후

4.7.9. Accept invitation을 클릭합니다.

원본주인화면변화

4.7.10. Collaborators 목록에서 초대된 사람에 대한 표시가 달라진 것을 확인하실 수 있습니다.('Pending Invite' 사라짐.)

4.7.11. 이제 팀원(초대받은 사람)은 원본 repository를 clone합니다.
git clone 원본repository주소
4.7.12. 반드시 branch를 만들어 사용합니다. 이 문단에서는 예시로 'member1'이라는 이름의 branch를 만들겠습니다.
git branch member1
git checkout member2
4.7.13. 작업(add, commit 포함.)
4.7.14. push 하기 전 master branch의 변경사항을 가져옵니다.
git pull origin master
4.7.15. push 할 때는 우선 git push origin member1 명령을 실행합니다.

GitHub repository 화면

4.7.16. GitHub에서 해당 repository에 접속하면 Code 탭에 Compare & pull request가 나타난 것을 보실 수 있습니다. 클릭해 줍니다.

Pull requests 탭
4.7.17. 그러면 Pull requests 탭에 해당 request가 뜨게 되는데요, 원본 repository 주인이 Create pull request를 클릭하고,

merge

Merge pull request를 클릭한 다음

message

Confirm merge까지 해 주면 member1의 수정 내용이 master에 반영(merge)됩니다.

4.7.*. 원본 repository에서 수정된 것이 있을 경우 git pull origin master 명령을 실행해서 원본 repository의 수정 내용을 가져오실 수 있습니다.

4.8. GitHub repository 공개/비공개 설정, 삭제

Settings
4.8.1. repository에서 Settings로 들어갑니다.
4.8.2. General을 선택합니다.

Danger Zone
4.8.3. 스크롤을 내립니다.
4.8.4. Danger Zone에서 공개/비공개 설정 및 repository 삭제가 가능합니다.

4.9. 글 마무리

제 글을 읽어 주셔서 감사합니다. 사실 TIL(Today I Learned)이기 때문에 설명이 장황하긴 했습니다. 긴 글 읽어 주셔서 다시 한 번 감사드립니다. 추후 추가할 내용이 있으면 별도의 글을 작성하겠습니다. 제가 참고한 자료들 중 귀한 자료가 많으니 아래의 글들 중 관심 있으신 것들을 클릭해 주시면 좋겠습니다.

4.10. 참고 자료

1) Nulab Inc. n. d. “누구나 쉽게 이해할 수 있는 Git 입문”, 누구나 쉽게 이해할 수 있는 Git 입문. (2022. 09. 17. 방문). https://backlog.com/git-tutorial/kr/
2) 성장하고 싶은 신입 개발자. 2022. “Git 사용법”, 성장하고 싶은 신입 개발자. (2022. 09. 16. 방문). https://dragondeok.tistory.com/50
3) 58청춘. 2022. “Git 사용법 (repository 생성, 연결, branch 사용)”, Just 두 It. (2022. 09. 16. 방문). https://58cjdcns99.tistory.com/101
4) MongTae. 2022. “[Git 설치 및 초기설정, Git 명령어] Git으로 버전 관리하기”, MongTae. (2022. 09. 16. 방문). https://mong-tae.tistory.com/20
5) 김코더 김주역. 2021. “[Git] git pull 소개와 git clone과의 차이점”, 김코더 김주역. (2022. 09. 16. 방문). https://kimcoder.tistory.com/288
6) hamsoter. 2022. “협업을 위한 git & github (Pull & Request 도전기)”, 해씨코드(). (2022. 09. 16. 방문). https://hamsoter.tistory.com/13
7) YYYEJI. 2022. “[Github] 레포지토리 공개/비공개 설정”, YYYEJI. (2022. 09. 16. 방문). https://yyyeji.tistory.com/21
8) 정광섭. n. d. “github에서 fork 후 작업하기”, git. (2022. 09. 17. 방문). https://www.lesstif.com/gitbook/github-fork-20775062.html
9) 김동영. 2020. “GitHub에서 협업을 위한 remote repository와 upstream 이해하기”, Hack IT. (2022. 09. 19. 방문). https://pers0n4.io/github-remote-repository-and-upstream/