본문 바로가기

Git

Github 사용법, 주요 개념, 소스트리 사용법

깃을 사용하려면 깃헙계정과 소스트리계정 총 2개가 필요합니다. 

(다른 방법도 있지만 여기서는 GUI 환경에서 Git을 이용하는 방법을 설명하겠습니다)

 

 

1. Github 사용법 설명 전 필수 설치되어야 할 것들

(1) 깃헙 회원가입 및 repository 생성 - 인터넷에 잘 정리되어 있는 내용이 많으니 참고하시길..

 

생성한 저장소의 Clone or download 버튼을 클릭해 해당 url을 복사해둔다 (혹은 메모장에 기록)

 

(2) Sourcetree 다운로드

 

① 설치

Git를 사용한다면 커맨드에서 하는 방법을 가장 추천하지만 터미널 명령어를 사용하는데 꽤나 어렵다

그래서 Git을 컨트롤하는 프로그램인 소스트리를 이용한다 (일종의 사용자를 위한 UI)

 

https://www.sourcetreeapp.com/

 

Sourcetree | Free Git GUI for Mac and Windows

A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

www.sourcetreeapp.com

 

소스트리를 사용하려면 Bitbucket Server나 Bitbucket 계정이 있어야 합니다.

구글 계정으로 소셜 로그인을 바로 할 수 있는 Bitbucket으로 가입하는게 편할겁니다.

나는 깃헙과 소스트리만 사용할건데 비트버킷 뭐시기는 왜 깔아야 하냐 하시면..

비트버킷은 아틀라시안이라는 호주 회사에서 만든 Git 호스팅 사이트 입니다. Git 호스팅 사이트는 Github만 있는게 아니라 GitLab, Bitbucket 등등 더 있어요. 무튼 소스트리랑 비트버킷 모두 아틀라시안이라는 회사에서 만들었는데요, 영업을 위해 둘을 묶었습니다. 

저희는 비트버킷 말고 GitHub을 Git 호스팅 사이트로 쓸 것이니 로그인만 어쩔 수 없이 해두는 겁니다 

 

 

② git 계정과 sourcetree 연결하기

계정>추가버튼을 누르면 연결할 수 있는 창이 나옵니다.

여기서 계정연결을 선택하면 자신의 github 계정에 연결할 수 있습니다.

 

 

 

2. Git 주요 개념

(1) .git 

로컬저장소에 가보면 .git이라는 숨김폴더가 있습니다.

Git은 이 [.git] 폴더에 버전 관리한 데이터와 이를 올릴 원격저장소의 주소(GitHub에서 만든 저장소 URL) 등 필요한 정보를 저장합니다. 

 

 

(2) md 확장자란? (README.md ...)

'md' 확장자도 'txt' 확장자와 동일하게 텍스트 문서를 적기 위한 파일을 나타냅니다. 

이렇게 '.md' 확장자로 만든 파일은 '마크다운 문서'라고 부릅니다.

마크다운 문서도 간단한 문법이 존재합니다. 예를 들어 텍스트 앞에 "#" 을 붙이면 이를 문서의 제목으로 인식합니다.

GitHub등 마크다운 문법을 지원하는 사이트에 md 파일을 올리면 보기 좋게 꾸밀 수 있습니다.

 

 

 

(3) 클론 (Clone) 이란?

원격저장소의 코드와 버전 전체를 내 컴퓨터로 내려받는 것을 클론이라고 합니다. 클론을 하면 최신 버전뿐만 아니라 이전 버전들과 원격저장소 주소 등이 내 컴퓨터의 로컬저장소에 저장됩니다.

 

 

 

(4) Git으로 관리하는 파일은 총 네 가지 상태를 가지게 된다. 각각 파일이 이 네 가지 상태를 오고가며 버전 관리를 하게 된다.

  • untracked - 추적 안됨
  • tracked - 수정 없음, 수정함, 스테이지됨

 

(5) master 브랜치에 커밋을 '올린다' 는 표현보다는, '가리킨다'는 표현이 정확하다.

브랜치는 단순한 '포인터' 이기 때문이다. 우리가 새로 커밋을 할 때마다 master 브랜치의 포인터가 최신 커밋을 가리킨다.

 

 

 

(6) HEAD 

브랜치 혹은 커밋을 가리키는 특수한 포인터이다. HEAD를 이용해 브랜치 사이를 마음대로 넘나들 수 있다. 

master 브랜치를 가리키게 할 수도 있고, 브랜치의 최신 커밋이 아닌 과거 커밋으로도 HEAD를 이동시킬 수 있다.

다만, 이 경우에는 master 브랜치의 포인터와 HEAD가 떨어져있기 때문에 Detached HEAD(분리된 HEAD) 상태가 된다.

 

 

 

 

 

 

 

 

3. 소스트리 이용하기

(1) Create

[Create] 아이콘을 누르고 로컬저장소를 만들고 싶은 폴더를 선택 (= .git 으로 초기화 하겠다는 소리) 하면 쉽게 로컬 저장소를 생성할 수 있습니다.

단, 기존에 초기화되지 않은 순수한 폴더를 선택해야 합니다. 

 

 

이렇게 되면 그냥 일반 폴더였던 MusicProgram 폴더가 git 폴더로 초기화 된 것을 볼 수 있습니다. ( .git 폴더가 생겼죠)

 

 

 

(2) 브랜치 보는법

origin/master : 원격저장소의 버전 (origin은 본인이 연결한 GitHub 원격저장소의 닉네임)

master : 로컬저장소 버전

 

즉, 원격저장소와 로컬저장소 버전의 위치가 각각 저 곳에 있다는 표시입니다.

아래 그래프에서는 내 로컬저장소의 버전이 원격저장소의 버전보다 두 단계 앞서나가 있다는 걸 알 수 있죠.

 

 

 

 

(3) 새 브랜치 만들기

현재 브랜치가 [master] 라는 것은, 이 브랜치가 가리키는 커밋을 기준으로 새로운 브랜치를 만든다는 뜻입니다.

체크아웃은 브랜치를 이동하는 명령어입니다.

 

 

 

(4) 내 브랜치(feat/어쩌고)를 master 브랜치로 합치고 싶을 때 병합 이용 ( = 내 브랜치를 master 브랜치가 가리키고 있는 커밋으로 똑같이 가리키게 하고 싶을 때 )

 

 

병합하면 나타나는 숫자 표시가 보인다. 4개의 커밋이 로컬저장소에서만 이뤄졌고 원격저장소(origin)에는 올라가지 않았다는 말이다. 

 

 

 

 

Push를 눌러주어 방금 진행한 병합이 원격저장소에 적용되도록 해준다.