Git이란 뭘까?
Git은 소스코드를 보다 효과적으로 효율적으로 관리하기 위해 개발된 분산형 버전 관리 시스템이다.
Git을 사용한다고 가정했을때 팀원끼리 소스 코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능하게 된다.
분산 버전 관리이기 때문에 로컬 저장소가 날라가 버려도 원상복구 할 수 있고, Hash값으로 인덱싱하기 때문에 중복될 가능성도 없을 뿐더러, 특정 시점에서의 버전을 다시 끌어와 쓸 수 있다는 장점이 사람들이 Git을 유용하게 사용하는 이유이다.
이때, 우리가 흔히 아는 Git과 Github는 다른 존재일까?라는 의문이 들 수 있다.
둘은 서로 다른 존재이지만 연관돼있다고 볼 수 있다.
Git은 개인 컴퓨터에서 돌아가는 버전 관리 시스템이다. Git을 사용할때에는 개인 계정이나 별도의 인터넷 없이 작동이 가능하지만, Github는 Git 저장소를 관리하는 클라우드 기반 호스팅 서비스로, Github라는 회사에서 서비스하고 있는 서버에 올린 Git을 사용하는 것이기 때문에 인터넷과 계정이 동시에 필요하다.
예를 들어, Git과 Github는 우리가 흔히 일상에서 사용하는 갤러리와 네이버 Mybox의 관계와 비슷하다.
핸드폰을 컴퓨터라 생각하고 사진을 소스코드라 생각해보자. Mybox라는 네이버 클라우드 서비스가 깃허브의 역할을 하게 되고, 연동 시켜 사진을 업로드하게 되면, 핸드폰 내 사진을 지워도 Mybox 서비스내에서 사진을 관리할 수 있게 된다.
다음은 Git의 치트시트이다. 개인적으로 요약이 정말 잘되있어서 Git의 기본적인 명령어가 생각나지 않을때 보면 유용하게 사용될 것 같다.
Git 작동 구조
다음은 Git 작동 구조를 나타낸 다이어그램이다.
1) 작업폴더에서 원격 저장소로 전달하기
파일을 원격저장소에 올리려면 Git add 라는 명령어를 사용하여 내가 작업한 파일을 스테이지에 올리고 Git Commit 명령어로 변경된 작업 상태를 확정짓고 로컬 저장소에 올려야한다. Commit까지 동작을 마쳤다면 로컬 저장소에 올라간 파일들을 Git Push로 앞서 말한 원격 저장소인 Github 사이트에 올릴 수 있게 된다.
Commit 명령어에 커밋 메세지를 추가할 수 있는데, 이는 commit -m "<커밋할 내용>"을 사용하여 팀 프로젝트에서 팀원들이 혹은 소스코드를 보는 사람들이 어떤 코드를 작성했는지 쉽게 알아볼 수 있게 나타낼때 사용한다.
2) 원격저장소에서 데이터 가져오기
원격 저장소에 올려져있는 파일을 가져올때도 Git 명령어를 사용하는데, 원격 저장소에서 변경된 데이터 정보를 복사하여 로컬 Git으로 가져오는 명령어 Pull , 원격 저장소에 최신 데이터 정보를 확인하는 명령어 Petch, 원격 저장소를 복제하여 로컬로 가져오는 Clone 명령어로 상황에 따라 맞게 명령어를 사용하면 된다.
fetch 명령어와 Pull 명령어의 차이점은 fetch는 최신 데이터를 확인하는 역할만 하지만, Pull 명령어는 최신 데이터를 확인하고 가져오는 역할을 한다. Pull 명령어를 사용하면 로컬 저장소로 데이터를 가져와 현재의 데이터와 병합시키는 구조이다.
'Devops > git' 카테고리의 다른 글
git commit "Author identity unknown" (0) | 2023.07.11 |
---|