[Git & GitHub] Git, GitHub 개념 정리

신승현·2022년 7월 1일
0

Git & GitHub

목록 보기
1/3
post-thumbnail

오늘은 개발자라면 필수적으로 알아야 하는 Git과 Github에 대해 알아보도록 하겠습니다.


❓ Git 이란?


Git은 파일을 관리해주는 프로그램입니다. Git의 주된 기능으로는 버전관리, 백업, 협업이 있습니다.
  • 버전관리
    파일의 변경 사항 추적 및 각 파일의 버전 관리
  • 파일 백업
    자신이 작업한 결과물을 온라인 원격저장소 GitHub에 저장
  • 협업
    협업자들과 파일을 공유하고, 각자의 작업물을 취합

위의 내용을 통해 Git이 무엇인지 살펴보았습니다.
이제는 이를 바탕으로 구체적으로 Git 과 GitHub에 대해 살펴보겠습니다.


🤷‍♂️ Git 과 GitHub


Git 은 로컬에서 버전을 관리해주는 프로그램입니다. 그러나, 위에서 언급한 Git의 기능을 활용하려면 온라인 원격 저장소가 필요합니다. 이러한 원격 저장소 기능을 제공해주는 서비스 중 하나가 GitHub 이고 GitHub는 Git Repository를 관리할 수 있는 클라우드 기반 서비스입니다.

즉 Git으로 버전을 관리하는 폴더에 대해서 GitHub을 통해 여러 사람들이 공유하고 접근할 수 있습니다.

Git으로 관리되는 폴더를 Git repository 라고 합니다.
Git repository 는 Remote RepositoryLocal Repository 두 종류의 저장소를 제공합니다. 작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있습니다. 다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있습니다.


🔎 Git 명령어 이해


1. Fork

다른 사람이 만든 프로젝트의 원격 저장소를 내 원격 저장소로 가지고 오는 작업을 Fork 라고 합니다.

2. Clone

Fork 를 하고 나면 나의 Remote Repository에 코드를 옮겨온 상태입니다. 이 코드를 수정하기 위해서는 내 로컬 컴퓨터로 가져오는 작업이 필요합니다. 그 과정을 Clone 이라고 합니다. Remote Repository에 있는 코드를 Clone 해서 내 컴퓨터로 가지고 옵니다.

3. Push

내 컴퓨터에서 소스코드 변경 작업을 완료했다면 이 변경된 내용을 commit을 통해 저장해 준 뒤, Remote Repository에 반대로 올려주는 작업이 필요합니다. 이 과정을 Push 라고 합니다. Local Repository에 기록해 놓은 commit을 Remote Repository로 업로드할 수 있습니다. 이렇게 Push를 완료하고 나면 GitHub에는 Pull request라는 기능이 있어서, 내가 제안한 코드 변경사항에 대해 반영 여부를 요청할 수 있습니다.

4. Pull

Push와는 반대로 Remote Repository에서 변경 사항이 있을 때 내 Local Repository 로 가져오는 작업이 Pull 입니다.

총정리

위의 그림은 다음과 같습니다.

  1. Remote에 있는 다른 Repository에서 Fork를 해서 Remote에 있는 내 Repository에 가지고 옵니다.

  2. 그리고 이 코드를 수정하기 위해서는 내 컴퓨터로 가져오는 clone을 합니다.

  3. 이제 내 컴퓨터의 작업 공간 (work space) 에서 작업에 들어간 파일들을 git의 관리하에 있는 상태로 올려줄 수 있습니다. 이 영역을 staging area라고 말합니다. 즉, staging area에 들어오지 않은 파일은 unstaged 혹은 untracked file이라고 말하며, staging area에 있는 파일들은 staged 된 파일이라고 말할 수 있습니다.

  4. staging area에 들어온 파일들은 commit이 가능합니다. commit을 하고 나면 내 remote repository에 push 해서 commit 기록을 remote 에도 남겨줄 수 있습니다.

  5. push를 완료한 후 이제 remote의 원래 레파지토리에 pull request를 보내면 Remote Repository로 내가 수정한 코드를 업로드할 수 있습니다.


WorkFlow


  • add, commit, push : 온라인 원격 저장소에 업로드하는 과정
  • fork, clone : 협업자의 작업물을 나의 로컬에 다운로드 받는 과정
  • pull request : 상대 협업자에게 나의 작업 완성물을 취합해달라고 요청하는 과정
  • merge : 상대방의 작업물과 나의 작업물을 취합하는 과정

지금까지 Git이 무엇인지, 그리고 어떤 기능을 제공하는지 살펴보았습니다. 다음 글에서는 Git의 설치 방법과 명령어를 사용해보는 실습을 하겠습니다.


Reference


profile
I have not failed. I've just found 10,000 ways that won't work. - Thomas A. Edison

0개의 댓글