[Git] 깃?
Git

[Git] 깃?

반응형

최종.psd 진짜_최종.psd.. 파일들이 점점 많아지면 PTSD가 오게 됩니다. 그리고 작업하던 파일을 편집 전 상태로 되돌리고 싶을 때에는, 편집하기 전에 파일을 미리 복사해 두는 것이 가장 쉬운 방법입니다. 파일과 폴더명 뒤에 편집한 날짜를 붙여 주는 방식이죠.

하지만 파일을 편집할 때마다 매번 손수 복사하는 일은 번거롭기도 하고 실수할 가능성이 다분합니다.

 

버전 관리라는 것 자체가 각 버전 별로 변경된 이력들을 저장하는 작업이라고 할 수 있습니다. 하나하나 추가되는 기능들의 변경 이력을 저장해 둘 수 있는 것입니다.

다시 이전 버전으로 되돌아가야 하는 상황이 발생할 경우 이전의 변경 이력들이 기록되어 있으니 되돌아가는 것이 가능하겠죠?

변경 사항을 저장할 때는 어떤 사항이 변경되었는지 코멘트를 꼭 작성을 해야 하는데요. 그렇기 때문에 누가 어떤 파일을 추가, 수정, 삭제했는지도 확인이 가능하다는 점도 중요한 장점입니다.

Git으로 관리되는 파일은 Github, GitLab, Bitbucket 등의 여러 가지 원격 저장소를 이용해서 백업과 협업을 할 수 있습니다.

 

Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템’ 입니다. 버전 관리 시스템의 기본적인 모습은 이 그림과 같습니다. 이 그림 처럼 하나하나 날짜별로 어떤 파일이 어떻게 바뀌었는지 확인이 가능합니다. 이렇게 특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데요. 이렇게 하나 하나 스냅샷을 만들어 주는 작업을 commit이라고 합니다. commit이라는 기능을 통해서 변경 사항에 대한 스냅샷이 만들어지고 이전의 기록들에 대한 추적이 가능하다면 버전 관리 뿐만 아니라 회사에서 협업을 할 때도 굉장히 유용하겠죠?

github는?  Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근할 수 있는 것이죠. 한 마디로 개발자들의 SNS입니다. Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝트들이 GitHub로부터 호스팅되고 있어서, 누구든 자유롭게 기여할 수 있습니다.

 

Git - 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템

Github - Git Repository를 관리할 수 있는 클라우드 기반 서비스

 

마이크로 소프트 사는 2018년에 무려 8천억 원으로 Github을 인수했습니다. 이유는 무엇일까요?

내 컴퓨터에서 작업하던 파일들이 있습니다. 만약 내 컴퓨터가 고장이 난다면? 잘못해서 파일들을 모두 삭제된다면 멘붕입니다.

이런 상황을 대비해 다른 컴퓨터에 백업본을 저장해 둔다면 내 파일들을 복구시킬 수 있겠죠. 그렇다면 이렇게 여러 컴퓨터에서 내 파일들을 관리하기 위해서 다른 컴퓨터를 또 사야 할까요? 아닙니다! 이것을 대신 해 주는 서비스들 중 대표적인 서비스가 바로 Github입니다. Github은 내 컴퓨터에서 Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트입니다.

 

오픈 소스(소스 코드가 공개된 소프트웨어)는 누구나 자유롭게 해당 기능을 추가하고 개선할 수 있어요.

이 작업을 기여하다(contribute)라고 합니다. React 같은 경우에도 이렇게 오픈 소스로 공유가 되어 있고 여기에 기여(contribute)를 할 수 있어요. 노란 동그라미로 표시된 곳에 기여자들이(contributors) 몇명 있다는 것을 볼 수 있습니다. 그리고 어떤 수정사항이 있는지 commit 기록을 통해서 확인할 수 있고 변경된 코드도 볼 수 있습니다.

 

내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야 하는데요.

Git으로 관리되는 폴더를 Git repository 라고 합니다.

Git repository 는 Local Repository Remote Repository두 종류의 저장소를 제공합니다.

 

작업할 때는 Local Repository에서 할 수 있고

내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있습니다.

다른 사람이 Remote Repository에 올려 놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있습니다.

React 프로젝트에 contribute을 하기 위해서는 먼저 React 원격 저장소를 내 원격 저장소로 가지고 오는 작업이 필요합니다. 그 과정을 Fork 라고 합니다.

 

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

 

내 컴퓨터에서 React 소스코드 변경 작업을 완료했습니다. 그렇다면 이 변경된 내용을 commit을 통해 저장해 준 뒤, Remote Repository에 반대로 올려주는 작업이 필요합니다. 이 과정을 Push 라고 합니다. Local Repository에 기록해 놓은 commit을 Remote Repository로 업로드할 수 있습니다.

 

이렇게 Push를 완료하고 나면 GitHub에는 Pull request라는 기능이 있어서, 내가 제안한 코드 변경사항에 대해 반영 여부를 요청할 수 있습니다. 반대상황도 있습니다. Remote Repository에서 변경 사항이 있을 때 Local Repository 로 가져오는 Pull 작업도 가능합니다.

 

 

<깃 설치> 터미널에서 git 을 친다.

 

<깃 최초설정>

https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%B5%9C%EC%B4%88-%EC%84%A4%EC%A0%95

 

 

반응형

'Git' 카테고리의 다른 글

[Git] 브랜치 명령어 정리  (0) 2021.08.10
[Git] 브랜치 관리와 고급 기능  (0) 2021.08.10
[Git, Github] 사용법 정리 / workflow  (2) 2021.05.25
[Git] 사용법 Together workflow  (0) 2021.05.21
[Git] 사용법 Alone workflow  (0) 2021.05.21