Git 개념 및 기본 용어 & 주요 명령어

박동건·2019년 12월 26일
0

Git

목록 보기
1/1

img.png

시작하기

깃(Git/git)은 컴퓨터 파일의 변경사항을 추적하고, 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템(Distributed Version Control System; DVCS)이다.

img (1).png

Working Directory: 현재 작업 중인 Git 프로젝트 파일들이 있는 내 PC의 디렉터리입니다. 평소 작업하듯 자유롭게 프로젝트를 작업할 수 있습니다.

Staging Area: 커밋할 변경 내역들의 대기 장소입니다. ‘git add’ 명령어를 사용하면 Working Directory의 변경내역을 Staging Area에 올립니다. 명령어 옵션을 통해 이 단계를 생략할 수 있습니다.

Local Repository: 커밋들이 스냅샷으로 기록된 곳입니다. ‘git commit’ 명령어를 사용하면 Staging Area에 있는 변경내역들을 실제 스냅샷으로 묶어 Local Repository에 올릴 수 있습니다. 즉, 하나의 commit이 하나의 버전의 구분점이 되며 이전 버전에서 해당 버전으로의 변경내역이 담겨 있습니다.

Remote Repository: 로컬 PC를 넘어 원격 서버에서 관리되는 저장소입니다. 이 곳에 올라온 커밋은 이제 다른 사람들도 참조할 수 있습니다(공개된 레포지토리일 경우에만). 커밋 단위로 해당 버전의 프로젝트를 내려받는 등의 행위가 가능합니다. 외부 저장소이기 때문에 로컬 환경의 파일이 손상되더라도 외부 저장소에 올라간 기록은 따로 유지됩니다.

기본 용어

코멘트 라인(Command Line): 깃 명령어를 입력할 때 사용하는 컴퓨터 프로그램. 맥에선 터미널이라고 한다. PC에선 기본적인 프로그램이 아니어서 처음엔 깃을 다운로드해야 한다.

두 경우 모두 마우스를 사용하는 것이 아닌 프롬프트로 알려진 텍스트 기반 명령어를 입력한다.

저장소(Repository): 프로젝트가 거주(live)할 수 있는 디렉터리나 저장 공간. 깃허브 사용자는 종종 “repo”로 줄여서 사용한다. 당신의 컴퓨터 안의 로컬 폴더가 될 수도 있고, 깃허브나 다른 온라인 호스트의 저장 공간이 될 수도 있다.

저장소 안에 코드 화일, 텍스트 파일, 이미지 파일을 저장하고, 이름 붙일 수 있다.

버전 관리(Version Control): 기본적으로, 깃이 서비스되도록 고안된 목적. MS 워드 작업할 때, 저장하면 이전 파일 위에 겹쳐 쓰거나 여러 버전으로 나누어 저장한다. 깃을 사용하면 그럴 필요가 없다.

프로젝트 히스토리의 모든 시점의 “스냅샷”을 유지하므로, 결코 잃어버리거나 겹쳐 쓰지 않을 수 있다.

커밋(Commit): 깃에게 파워를 주는 명령이다. 커밋하면, 그 시점의 당신의 저장소의 “스냅샷”을 찍어, 프로젝트를 이전의 어떠한 상태로든 재평가하거나 복원할 수 있는 체크포인트를 가질 수 있다.

브랜치(Branch): 여러 명이 하나의 프로젝트에서 깃 없이 작업하는 것이 얼마나 혼란스러울 것인가? 일반적으로, 작업자들은 메인 프로젝트의 브랜치를 따와서(branch off), 자신이 변경하고 싶은 자신만의 버전을 만든다.
작업을 끝낸 후, 프로젝트의 메인 디렉토리인 “master”에 브랜치를 다시 “Merge”한다.

주요 명령어

$ git init

깃 저장소를 초기화한다. 저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반 폴더이다. 이것을 입력한 후에야 추가적인 깃 명령어들을 줄 수 있다.

$ git config

“configure”의 준말, 처음에 깃을 설정할 때 가장 유용하다.

$ git help

명령어를 잊어버렸다? 커맨드 라인에 이걸 타이핑하면 21개의 가장 많이 사용하는 깃 명령어들이 나타난다. 좀 더 자세하게 $ git help init이나 다른 용어를 타이핑하여 특정 깃 명령어를 사용하고 설정하는 법을 이해할 수도 있다.

$ git status

저장소 상태를 체크. 어떤 화일이 저장소 안에 있는지, 커밋이 필요한 변경사항이 있는지, 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등을 볼 수 있다.

$ git add

이 명령이 저장소에 새 화일들을파일들을 추가하진 않는다. 대신, 깃이 새 파일들을 지켜보게 한다. 파일을 추가하면, 깃의 저장소 “스냅샷”에 포함된다.

$ git commit

깃의 가장 중요한 명령어. 어떤 변경사항이라도 만든 후, 저장소의 “스냅샷”을 찍기 위해 이것을 입력한다. 보통 $ git commit -m “Message hear 형식으로 사용한다. -m은 명령어의 그다음 부분을 메시지로 읽어야 한다는 것을 말한다.

$ git branch

여러 협업자와 작업하고 자신만의 변경을 원한다? 이 명령어는 새로운 브랜치를 만들고, 자신만의 변경사항과 화일 추가 등의 커밋 타임라인을 만든다. 당신의 제목이 명령어 다음에 온다. 새 브랜치를 “cats”로 부르고 싶으면, git branch cats를 타이핑한다.

$ git checkout

글자 그대로, 현재 위치하고 있지 않은 저장소를 “체크아웃”할 수 있다. 이것은 체크하길 원하는 저장소로 옮겨가게 해주는 탐색 명령이다. master 브랜치를 들여다보고 싶으면, git checkout master를 사용할 수 있고, git checkout cats로 또 다른 브랜치를 들여다볼 수 있다.

$ git merge

브랜치에서 작업을 끝내고, 모든 협업자가 볼 수 있는 master 브랜치로 병합할 수 있다.

git merge cats는 “cats” 브랜치에서 만든 모든 변경사항을 master로 추가한다.

$ git push

로컬 컴퓨터에서 작업하고 당신의 커밋을 깃허브에서 온라인으로도 볼 수 있기를 원한다면, 이 명령어로 깃허브에 변경사항을 push한다.

$ git pull

로컬 컴퓨터에서 작업할 때, 작업하고 있는 저장소의 최신 버전을 원하면, 이 명령어로 깃허브로부터 변경사항을 다운로드한다(pull).

참고사이트

  1. https://backlog.com/git-tutorial/kr/

  2. https://nolboo.kim/blog/2013/10/06/github-for-beginner/

  3. http://www.secmem.org/blog/2019/04/10/git_pr/

  4. www.secmem.org

profile
박레고의 개발 블로그

1개의 댓글

comment-user-thumbnail
2019년 12월 26일

예전에 티스토리에 블로깅 했던 글입니다.

답글 달기

관련 채용 정보