내일배움캠프[4기_Reac트랙]/모두의 git & GitHub
5. 깃허브로 협업하기
ecoEarth
2023. 1. 16. 03:23
깃허브와 소스트리 연동하기
SSH(Secure Shell)
- 사용자측에서는 두개의 키를 생성한 후 상호작용하고자하는 대상에게 공개키를 전달하면 된다.
공개키
터미널에서 공개키를 생성하는 방법은 다음과 같다.
ssh-keygen
생성한 공개키는 경로를 적어준 후 확인할 수 있다.
inguk@JEONui-MacBookPro ~ % cat /Users/inguk/.ssh/id_rsa.pub
inguk@JEONui-MacBookPro ~ % cat /Users/inguk/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHxy1s0rNkGZojQdwlr8Fo
lli7iWbGQ4ydpOWibbMSmQq2cz3vFdTKYjDqjQHZ0UZ9NU5d3nrTaYWcZNiA
PBOfrMUSmLpEZfYTZaTvPAr8pZz/itHISQqd3i76PuGpFlwDbSdvk4J5qFBy
3t0eV496HjHNqslWQ1jsON3g2U/bwYvRwwWyNxzx1Nx2AbORr6JbBZP7rT12
H9xmxn/Vx9IlPVCrdI2/G6xpuvu80JlPKnUPwc8SP+Kx8KKQdInQC7D85DFx
UN/g5OY2JVObHTOEnFf97Z8OHIrPxvjMNYq5VVAgAguJxq80OkjdRfuzC0KK
vVF7r/j6RzOcct5K622NDXoJTZ0YaWAngmNtNLTstvTdV2eAjNUrPKcsXm7A
5JPJT+2XeKk2Yw9ngBxlJKQsCffjiKf040TaoMFtey/Po1NwohSTT31XeEVuo
B9DOPIp7y9du7eRzVSK0BZhfVuKETnYRt/53rcvpug0CLSk0+nF0nwYaDEJs7
3QqbxR+F0= inguk@JEONui-MacBookPro.local
이렇게 만든 공개키는 위에서 언급한 것과 같이 상호작용하고자 하는 대상 즉, 깃허브에게 전달해주면 된다.
- SSH 키는 여러개 등록할 수 있다.
여러개의 키를 식별하기 위해 타이틀을 설정해주고, 위에서 생성하고 조회한 SSH키를 붙여넣기해주면 된다.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHxy1s0rNkGZojQdwlr8Fo
lli7iWbGQ4ydpOWibbMSmQq2cz3vFdTKYjDqjQHZ0UZ9NU5d3nrTaYWcZNiA
PBOfrMUSmLpEZfYTZaTvPAr8pZz/itHISQqd3i76PuGpFlwDbSdvk4J5qFBy
3t0eV496HjHNqslWQ1jsON3g2U/bwYvRwwWyNxzx1Nx2AbORr6JbBZP7rT12
H9xmxn/Vx9IlPVCrdI2/G6xpuvu80JlPKnUPwc8SP+Kx8KKQdInQC7D85DFx
UN/g5OY2JVObHTOEnFf97Z8OHIrPxvjMNYq5VVAgAguJxq80OkjdRfuzC0KK
vVF7r/j6RzOcct5K622NDXoJTZ0YaWAngmNtNLTstvTdV2eAjNUrPKcsXm7A
5JPJT+2XeKk2Yw9ngBxlJKQsCffjiKf040TaoMFtey/Po1NwohSTT31XeEVuo
B9DOPIp7y9du7eRzVSK0BZhfVuKETnYRt/53rcvpug0CLSk0+nF0nwYaDEJs7
3QqbxR+F0= inguk@JEONui-MacBookPro.local
소스트리와 깃허브 연결
- 원격 탭으로 가서 전에 생성해둔 repository가 정상적으로 보이는지 확인해보자. 잘 보인다면 성공!
원격 저장소와의 네 가지 상호작용
클론(clone): 원격 저장소를 복제해오기
- 목적지 경로와 이름은 소스트리에서 자동으로 생성해준다.
- 저 경로가 매번 말하기 귀찮으니까 그냥 origin이란 별명으로 부르는 것이다.
푸시(push): 원격 저장소에 밀어넣기 - 일종의 업로드
- 자신이 소유하고있지 않은 푸시는 불가능하다. 즉, 타인의 클론한 레파지토리에 푸시할수는 없다.
- 정상적으로 원격 레파지토리에 추가된 것을 볼 수 있다!
로컬저장소에 이미 작업해둔 결과물을 깃허브에 추가하기
앞서 살펴본 "클론 -> 푸시"의 과정이 아닌 "작업 -> 푸시"의 과정을 살펴보자.
- 작업해둔 결과물을 소트트리에서 로컬 저장소 추가
- 설정 -> 원격 탭으로 이동한 후 '추가' 클릭
- 깃허브에서 레파지토리를 새롭게 생성 후 SSH 복사해오기
- 원격 이름을 origin으로 설정 후 복사한 SSH를 URL/경로에 붙여넣기하기
패치(fetch): 원격 저장소를 일단 가져만 오기
- fetch는 다음과 같은 상황에서 사용할 수 있다.
- 개발자A는 협업도중 개발자C의 작업물을 가져와 확인하고는 싶으나, 자신의 브랜치에는 영향을 주지 않고싶은 상황
- fetch를 한다면 -> 로컬 저장소의 브랜치에는 영향을 주지는 않으나, 원격 저장소의 브랜치에는 업데이트가 되게 된다.
풀(pull): 원격 저장소를 가져와서 합치기
- pull은 fetch와는 다르게 원격저장소의 변경물을 로컬저장소의 작업물과 병합한다.
풀 리퀘스트(pull request)
앞서 언급했듯이 자신의 소유가 아닌 파일을 클론해올수는 있을지언정 푸시는 할 수 없다.
그렇다면 어떻게 자신의 작업물을 푸시할 수 있을까? 바로 자신의 변경사항을 푸시해달라고 요청하는 것이다.
pull request는 다음의 과정을 거친다.
- 기여하려는 저장소를 본인 계정으로 포크하기
- 포크란 자신이 소유하고있지않은 원격저장소를 자신의 계정으로 복제하는 것을 의미한다.
- 레파지토리가 자신의 소유가 아니라면 푸시할 수 없기때문에 일단 포크를 해온 후 작업하는 것이다.
- 이러한 포크해온 작업물에서는 푸시가 가능하기때문
- 포크한 저장소를 클론하기
- 브랜치 생성 후 생성한 브랜치에서 변경사항 만들어내기
- 작업한 브랜치 푸시하기
- 생성한 브랜치를 푸시합니다. 그러면 깃허브에 풀 리퀘스트 버튼이 생성됐죠.
- 풀 리퀘스트 보내기