Github 1 - 협업의 시작

5England·2021년 9월 21일
0

협업과 통합

목록 보기
4/12
post-thumbnail

Github

전의 git을 다룬 글에서 git의 사용 목적과, commit을 하는 방법에 대해 알아보았다.
물론 이 단계까지 오면 당신의 개인 프로젝트에 많은 변화가 생길 것이다.
하지만 실무는 개인 프로젝트 단위가 아닌 협업 프로젝트 단위이다.

오늘은 협업이 이뤄지는 시작점인 github에 대해서 알아보겠다.

What is Github and why it is used?

GitHub is a web-based interface that uses Git, the open source version control software that lets multiple people make separate changes to web pages at the same time.

As Carpenter notes, because it allows for real-time collaboration,

GitHub encourages teams to work together to build and edit their site content.

도대체 Github이 뭔데

Github, 개발자를 꿈 꾸는 이들이라면 넘어야 할 관문이다.
우리는 저번 시간에 git을 배웠다.
git은 우리의 프로젝트에 체계적인 버전 관리를 제공함으로써, 높은 유지보수성을 제공해준다.

자, 우리가 만드는 포트폴리오는 개인 단위 프로젝트이다.
우리는 언젠가 개발자가 되어 을 이루고 여러 명으로 이루어진 팀이 하나의 프로젝트를 작업한다.
즉, 팀의 구성원이 되어 협업 단위 프로젝트를 진행하는 순간이 올 것이라는 말이다.

우리는 이 거대한 하나의 프로젝트에 git을 사용하고 싶다. 체계적인 버전 관리를 통해 유지보수성을 극대화하고 싶다. 하지만 팀은 여러 명이고, 컴퓨터도 여러 대이다. 각자 git 버전 관리 작업 후, 하나의 컴퓨터에서 수동적으로 병합할 것인가? 벌써 골치가 아프다.

web-based interface that uses Git
it allows for real-time collaboration

git을 사용하는 웹 기반 인터페이스 + 실시간 협업을 지원

우리가 찾던 것이 이거 아닌가?
github는 여러 명이서 하나의 프로젝트에 대해 git 버전 관리를 할 수 있도록 도와주는 사이트다.

  • 기본적인 github 협업 프로세스
    • 1 ] 각자의 컴퓨터로 현재 버전 프로젝트를 pull(가져오기)해와서 작업을 한다.
    • 2 ] 작업을 마친 버전을 github 해당 프로젝트의 레포지토리로 push(넣기)한다.
      • 어, 여러 명이서 각자 다른 버전을 push하는데, 버전이 뒤엉키지 않나요?
    • 3 ] 걱정 마라, github가 알아서 병합해준다. 놀랍다!
    • 이정도만 알아도 협업이 어떻게 이뤄지는지, 기본은 이해했다고 보면 된다.

push

우리는 저번 글에서 hello.cpp파일에 대해 commit했다. 새로운 버전을 만드는 작업을 잘 수행했다. 이제 팀원들에게 해당 버전을 공유해야 되지 않겠는가? 물론 push하기 전 테스트나 코드 리뷰 등의 절차가 있지만, 여기서는 생략하겠다.

hello.cpp 파일에 대한 버전 관리 정보들은 Local Repository 내에 존재하고 있다.

  • Local Repository 내에 있는 버전 정보
  • github의 해당 remote Repository에 업데이트하는 작업이 push이다.
  • 내친 김에 pull도 한 번 살펴보자. push의 반대 격이라 생각하면 된다.

  • 다른 리포지토리 또는 로컬 브런치에서 가져오기 및 통합하는 작업이 pull이다.

자 그럼, 저번 작업을 마저 진행해보자.

add remote

  • 먼저 github에서 해당 프로젝트의 버전 관리 정보를 업데이트할 공간인 remote repository를 생성하고 연동해야 한다.
  • github sign in - repository - new - 레포지토리 네임 설정 후 create repository
  • 그리고 해당 레포지토리로 들어가보면 레포지토리의 url을 복사할 수 있다.
  • VScode로 돌아와 터미널을 연다.
  • git remote add "repository name" "repository url"

을 입력 후 엔터

  • hello이라는 이름으로 remote repository가 생성 및 연동된다.

push

  • push 해보자.

  • 정상적으로 push된 것을 확인할 수 있다.
  • 프로젝트에 원격저장소를 add한 것이지, 실질적으로 연동되진 않았다. 따라서 push to - hello를 클릭하여 push한 것이다. 이 때
  • 터미널에서 git push -u hello master를 입력하면, 다음부턴 git push만 클릭해도 자동으로 해당 리모트 레포지토리로 push된다.
  • hello 원격 저장소의 master 브런치를 의미함.
  • 실질적인 레포지토리 연동작업이다.
  • remote repository의 원래 주소는 길다. 이 주소명으로 항상 표시하기엔 불편함이 따른다. 그래서 remote를 별명으로 부를 수 있는데. 이것이 바로 origin이다. 위의 예제에서도 hello보단 origin으로 저장하는 것이 더욱 바람직하다.

init : 해당 디렉토리에 대한 repository를 초기화하고
add : commit할 파일을 구분 및 선택하여
commit : 해당 작업에 대한 commit message를 작성하여 훌륭하게 commit했다.
add remote : github에 해당 프로젝트의 버전 관리 정보를 업데이트할 원격 저장소를 만들었다.
push : 이후 해당 원격 저장소에, 우리의 프로젝트를 push했다.




Github에서 사용할 수 있는 기능

  • add member
    • 프로젝트에 대한 레포지토리가 있고, 팀 단위로 해당 프로젝트를 진행한다면 멤버를 추가 할 수 있다. 협력의 시작인 것이다.

우리의 레포지토리를 좀 더 살펴보자.

  • code
    • 말 그대로 해당 프로젝트의 코드를 확인할 수 있는 카테고리이다.
    • 오른쪽 상단을 보면 20 commits가 보인다. 클릭하면 지금까지 있었던 20번의 커밋(버전) 정보들에 대해 확인할 수 있다.
  • issue
    • 소통의 핵심적인 기능은 issue 카테고리에서 이뤄진다.
    • 해당 프로젝트에 관련해 토론 및 대화가 가능하다.
  • Pull Request
    • Merge Request라고도 한다.
    • 아직 공부를 못했다. 하지만 좋은 글이 있어 남겨둔다.
    • pull request 참고 글
  • Action
    • CI/CD와 연관이 있다고 한다.
    • push를 했을 때 github에서 자동으로 해주는 행동에 대해 정의하는 카테고리 정도로 이해했다.
  • wiki
    • 팀원들이 프로젝트를 진행하다 보면 지식을 정리해서 올려야 할 필요성이 생기게 됨.
    • 사용설명서, 프로젝트 참여 방법 등등
    • 이런 것들을 정리하는 카테고리라고 한다.

협업을 할 기회가 잘 없어서 감 잡기가 쉽지 않다. 포트폴리오 준비 시 협업을 가정하고 솔로 플레이를 잘 해볼 예정이다. 이번 글은 여기서 마치겠다.

p.s : 선택적 수용을 지향합니다. 오류가 있을 수 있습니다.

profile
한 눈에 보기 : https://velog.io/@dongwan999/LIST

0개의 댓글