깃(Git)과 깃허브(Git Hub) 용어 정리

Alal11·2022년 8월 13일
1

Git & Git Hub

목록 보기
1/5

1. 깃(Git)이란?


git은 파일버전 기록해주는 프로그램으로,
우리가 코드를 짠 히스토리(역사)를 따로 보관해주는 프로그램이다.

git은 모든 파일의 변화를 항상 기록하고 있는데
어디서, 몇 시에, 누가, 몇 번, 무엇이 변경되었는 지 모든 변화된 내용을 추적하고 있다

또한, 같은 파일에 대한 각기 다른 버전을 보관할 수 있다. 즉, 타임라인이 전부 기록되는 것이다.

이런 타임라인이 전부 기록 되면서 위에서 말한 모든 파일의 변화를 알 수 있다.
만약, 깃이 없었다면 버전에 따라 파일을 따로따로 작업해야 하고, 모든 버전이 공통으로 갖는 한가지를 바꿔야 한다면 일일이 복붙해서 변경하는 매우 귀찮고 비효율적인 작업이 될 것이다.


깃은 각기 다른 버전의 파일을 한번에 관리해준다. 따라서 공통된 변경사항을 모든 버전의 파일에 바로 적용할 수 있다.

또한, 저 위의 타임라인 사진에서 알 수 있듯이 내가 다른 사람들이랑 함께 일을 하는 경우에 깃을 통해서 하나의 파일을 갖고 여러명이 일을 할 수 있다.

이 과정에서 누가 어떤 실수를 했는지, 무엇을 어떻게 변경 했는지 변화를 전부 볼 수 있기 때문에, 나와 다른 사람들이 서로의 변경사항과 충돌하는 일이 없이 효율적으로 작업이 가능하다.

여기서, 함께 작업을 하면서 나의 파일과 깃 히스토리를 사람들과 공유할 수 있는 이유!
바로 깃허브 때문이다.


2. 깃 허브(Git Hub)란?


깃허브는 클라우드에 있는 깃 제공자이다. 즉, 내 컴퓨터에서 깃 히스토리를 가져와서 깃허브 웹사이트에 저장한다.

내 컴퓨터의 깃 히스토리를 깃허브 클라우드에 올리면, 다른 사람이 이를 가져올 수 있기 때문에 모든 변화 기록을 볼 수 있다. 각각의 변화 기록을 '깃허브'라는 같은 곳으로 보내는 것이니까!

깃허브를 사용하는 이유는 협업도 있지만, 내 컴퓨터에만 저장했다가 만약 컴퓨터가 고장나거나 무슨 일이 발생했을 때 그동안의 프로젝트가 전부 날라갈 수 있기 때문이다. 그래서 온라인 저장소, 즉 원격 저장소인 깃허브를 사용하여 더 안전하게 코드 보관과 기록을 하는 것이다.

참고로, 깃허브는 이러한 작업을 하는 유일한 곳이 아니다. Gitlab과 bitbucket도 동일한 작업을 할 수 있지만 깃허브가 가장 유명하다.

깃허브에는 엄청나게 많은 오픈 소스 프로젝트들이 올라가 있는데
아마존, 페이스북, 구글 등등 유명한 대기업의 코드들을 오픈소스로 다 볼 수 있다고 한다..!


3. 깃(Git) 필수 용어

저장소 (Repository)

파일이나 디렉토리를 저장하는 장소라고 한다.

  • 로컬 저장소

    인터넷 없이 접속되는, 보통 자신의 컴퓨터에 있는 저장소

  • 원격 저장소

    서버나 네트워크에 있는 저장소 (ex. 깃허브)

기본적으로 로컬 저장소에서 작업을 수행하고 그 결과를 원격 저장소에 저장하는 방식!

Init

소스코드 파일을 Git으로 관리하기위해 Git 저장소를 초기화하는 명령어

Clone

GitHub 상 오픈소스 혹은 이미 만들어져 있는 프로젝트 개발에 참여할 때, 원격 저장소의 소스 코드를 로컬 저장소로 복제해와서 사용하는 명령어

Pull

원격 저장소(Git Hub)의 내용을 로컬 저장소에 다운로드 하여 반영하는 작업 (fetch + merge)

Push

원격 저장소(Git Hub)에 파일을 추가하거나 변경 내용을 저장하는 작업.
즉, 로컬 저장소에서 원격 저장소로 업로드

Branch

깃 저장소를 하나 만들면 기본적으로 main인 브랜치가 하나 생성된 후 main 브렌치의 소스코드를 그대로 둔 상태에서 main 브랜치의 기능을 추가하거나 유지보수 할 때에 사용한다.
쉽게 말해, 현재 파일을 바꾸는 게 아니라 가지를 쳐서 그 가지를 바꾸는 것.

Merge

위에서 말한 다른 Branch(가지)를 현재 Branch(가지)로 가져와 합치는 작업.
pull request에서 검토 후 승인과정을 거쳐 main branch에 적용되는 것을 말한다.

Head

현재 작업 중인 Branch(가지)

Add

로컬 저장소에서 현재까지의 수정, 추가, 삭제 등의 작업물 상태를 저장하는 행위.
commit을 하기 위해서는 add 작업이 선행되어야만 한다.

Commit

branch에서 add 작업을 한 후, 작업에 대한 코멘트를 남기면서 변경 사항들을 저장하는 행위.
깃 히스토리를 만드는 것.
과거로 돌아가야할 때, 즉 롤백이 필요할 때 commit 지점으로 돌아갈 수 있다.

Rebase

2개의 branch를 합칠 때 사용한다. merge와 비슷하나 merge는 두 branch의 최종결과만 합치지만, rebase는 branch의 변경사항을 순서대로 다른 branch에 적용하면서 합친다.

Pull Request

프로젝트를 협업하는 사람들에게 생성된 commit에 대해 검토를 요청하는 것. commit을 메인 브랜치에 적용할 것인지 검토를 통해 결정된다.

Checkout

branch를 변경하는 명령어


end

이 포스팅을 하기 전엔 깃과 깃허브 차이점도 몰랐는데..ㅋㅋㅋ 열심히 검색하고 찾아본 결과 개념은 어느정도 잡힌 것 같다! 이제 실전으로 들어가서 직접 깃허브를 사용해보자~!

0개의 댓글