본문 바로가기

Tools/Git&Github

깃(Git)에 대한 간단한 설명부터 레파지토리 생성 후 커밋, 푸쉬하기까지


깃에 대해 알아보자!(정의, 장점, 영역)

깃은 뭐고 깃허브는 뭘까? - 깃(Git)과 깃허브(Github)의 차이

  • 깃(Git)

    버전 관리 시스템(VCS)툴 중 하나 (버전 관리 시스템(VCS) ≠ 깃)

  • 깃허브(Github)

    깃을 저장하는 서버 → 그래서 우리가 홈페이지로 들어갈 때 github로 들어간 것!

굳이 깃을 쓰는 이유 - 깃의 장점

  • 분산 형상 관리 시스템(DVCS = Distribute Version Control System)

    각자의 컴퓨터에서 작업을 하는 것 = 저장소를 통째로 복사한다

    → 저장소가 로컬(내 컴퓨터)에 있음

    • 이로 인해 생기는 장점
      • 속도가 매우 빠르기 때문에 빠른 협업이 가능하다.
      • 커밋에 부담이 없다.
      • 원격저장소와의 연결이 끊겨도 버전관리가 가능하다.
      • 언제든지 복원이 가능하다.

깃의 영역

작업공간 → 스테이지 영역 → 로컬저장소 ⇒ 원격 저장소(깃)

  • 스테이지 영역

    • 커밋(commit)하기의 직전단계로, 바뀐 내용들을 추적하여 스테이지 영역에 올린다.
  • 로컬 저장소

    • 커밋(commit)하면 로컬 저장소에 저장된다.

깃을 실제로 사용해보자!

깃의 여러가지 문법

저장소 만들기

$ git init

깃 저장소로 만들어 주는 역할을 한다.

$ git remote add <name> <url>

원격저장소를 저장할 때 사용한다.

파일 내용 바꾸고 올리기

$ git add <파일이름>
$ git add . // 현재 디렉토리 기준으로 이하의 파일까지 모두 추적
$ git add * // 위와 같음

파일을 추적하여 스테이지 영역(staging area)에 올린다.

$ git rm —cached <파일명>

(선택사항) 스테이징 영역에서 제외하고싶은 파일이 있을 때 사용한다.

$ git commit -m "메세지"
$ git commit --amend // 위에 있는 커밋 내역 덮어쓰기(사소한 커밋일 때)

스테이지 영역에 있는 파일들을 로컬 저장소로 저장한다.

$ git status

깃의 상태를 볼 때 사용한다.

초록색 글씨는 스테이징 영역에 올라간 것, 빨간색은 올라가기 전을 의미한다.

$ git push <name> <branch>

원격 저장소로 보낼 때 사용한다.

name은 remote할 때 사용했던 name(보통 origin을 쓴다),

branch는 올리고 싶은 branch(보통 master를 쓴다)

브랜치(branch) 만들고 병합 후에 삭제하기

$ git pull

원격 저장소에 맞추어 로컬 저장소를 갱신하고 싶을 때 사용한다.

$ git checkout <branch>
$ git checkut -b <branch>

브랜치를 전환하거나 커밋 내역을 불러 올 때 사용한다.

checkout -b 는 브랜치를 새로 만들고 동시에 전환할 때 사용한다.

브랜치 현황을 보고 싶으면 git branch로 볼 수 있다.

$ git merge <branch>

작업내용을 병합할 때 사용한다.

$ git branch -d <branch>

브랜치를 삭제하고싶을 때 사용한다.


아래 예제들은 git config를 마친 상태에서 진행하는 예제입니다.

git config --global user.name "유저 이름"
git config --global user.email "이메일 주소"

깃 레파지토리를 만들고 cmd에서 커밋(commit), 푸쉬(push)하기

1) New repository를 클릭한다.

2) repository name(레파지토리 이름), description(설명), public/private(공개 범위), README의 여부를 채우고 Create repository를 누른다.

3) cd로 작업공간으로 이동한다.

4) git init 을 이용해 깃 저장소를 만들어준다.

5) git remote add

원격 저장소의 url을 지정해준다.

잘 지정되었는지 보려면 → git remote -v 로 확인할 수 있다.

6) 파일 수정을 한다.

                                                                      또는

7) git add <파일이름> 또는 git add . (또는 *)

변경된 파일을 추적하고 스테이지 영역에 추가한다.

<파일이름> : <파일이름>만 추적한 후 추가한다.

. (또는 *) : 현재 디렉토리 기준으로 이하 파일까지 모두 추척한 후 추가한다.

8) git commit -m "메세지"

commit을 통해 로컬 저장소로 저장한다.

9) git push

push를 하여 로컬 저장소에 있는 내용들을 원격 저장소(git)으로 보낸다.

branch는 기본적으로 master이다. (브랜치를 보고 싶으면 git branch로 확인 가능)

10) 커밋완료

git 홈페이지로 가면 커밋이 정상적으로 된 것을 확인할 수 있다. 야호!


그 후에 수정하고 다시 올리고 싶을 때에는

경로 이동(cd) 후 6~10번을 반복하면 된다.


참고 문헌

svn 능력자를 위한 git 개념 가이드

분산 버전 관리 - 위키백과, 우리 모두의 백과사전