깃 기초 (Git Basics)

깃은 프로그래밍 언어는 아니지만

일반적으로 소스코드에 관련한

문서 관리 시스템입니다.

 

프로그래머가 아니더라도 깃의 시스템을

활용하여 생산성을 높이는 것이 가능합니다.

 

여기서는 버전 관리 시스템(VCS -

Version Control System) 깃의 기초적인

커맨드를 알아보겠습니다.

 

깃은 크로스 플랫폼으로 윈도우, 리눅스,

MacOS에서 사용할 수 있습니다.

윈도우 환경의 설치는 아래 링크를 참고합니다.

 

깃 설치 (Git) / 깃허브(Git Hub) 가입

 

깃의 클라이언트는 리눅스나 MacOS의

셸(bash, zsh) 환경이 더 수월합니다만,

여기서는 윈도우의 파워셸(혹은 명령프롬프트)

CLI 클라이언트를 알아보겠습니다.

파워셸이나 리눅스 bash나

CLI의 git 사용법은 같습니다.

(고유의 셸명령어만 다르다)

 

 

윈도우 터미널을 활용하면 좋은데

설치는 아래 링크를 참고합니다.

 

윈도우 터미널 설치

 

파워셸에서 프로젝트 폴더로 가서

다음 명령어를 입력합니다.

git init

git 저장소를 initialize (초기화) 합니다.

git status로 현재 상황을 알 수 있습니다.

git init 후에 윈도우에서는 숨김 폴더로

.git가 생성됩니다. 이 폴더 안에는

버전을 관리 시스템의 파일이 설치됩니다.

 

깃 시작하기

아래는 git 폴더의 리스트입니다.

 

파워셸은 bash 보다 거시기 하니까

비주얼 스튜디오 코드를 함께 사용하겠습니다.

 

비주얼 스튜디오 코드로 현재 폴더를

오픈하여 파일을 생성합니다.

 

적당히 html 파일을 만들어서 저장합니다.

 

비주얼 스튜디오 코드

 

다시 파워셸로 돌아가 status를 봅니다.

뭔가 변화가 있습니다. Untracked files라며

add하라고 나옵니다. 즉 변경된 사항에 대해

커밋(commit)을 하라는 내용입니다.

무엇이 변경되었는가? 깃 repository의

파일 중에 변경된 것을 포착한 것 입니다.

 

git status

 

깃이 이 파일을 추적하게 하려면 저장소에

파일을 추가하고 커밋해야 합니다.

이 저장소를 staging area 라고 합니다.

 

git add (파일)로 커밋을 해봅니다.

변경된 메시지가 나오는데 특이한 건

stage 와 unstage라는 단어입니다.

마치 스테이지(무대)에 오르고 내리는

배우 처럼 이 파일을 대하고 있습니다.

 

아, 그전에 지금 커밋하는 사람이 누군지

깃에 알려줄 필요가 있습니다.

git config --global user.email "이메일"
git config --global user.name "이름"

해서 이메일과 이름을 등록합니다.

그 다음에 git commit -m "메시지 내용"을

넣어서 커밋합니다. 커밋이 완료됩니다.

git log를 하면 커밋 내용과 hash가 나옵니다.

 

파일을 더 추가하고 index.html 파일을 변경합니다.

 

어떻게 되는지 알아보겠습니다.

 

 

git status를 체크해봅니다.

예상대로 stage에 올라간 index는 변화를

감지하고 있고 새로 만들어진 파일 두개는

Untracked(추적이 안됨)라는 표시가 나옵니다.

이것은 git 이라는 stage에 올라가면 관리를

받고 그렇지 않은 파일들은 등록을 해야

된다는 것을 의미합니다. 심플합니다.

 

깃에 추가하면 변경된 내용이 나옵니다.

 

css 파일도 변경해보겠습니다.

대충 아래와 같은 웹페이지를 만들었습니다.

허접한 웹페이지가 중요한게 아니라

깃이 추적하고 있는가가 중요합니다.

 

 

해서 커밋을 했습니다.

 

 

다시 로그를 해서 보면 commit 의

hash 가 나오고 Author와 Date

메시지가 나오는데 두번 커밋했습니다.

 

깃 로그

 

git status를 확인하고 add할 건 add 하고

commit 할 건 commit 하면 됩니다.

git add . 은 모두 추가하는 것 입니다.

 

마지막 커밋에서 백그라운드 칼라를 바꿨습니다.

add와 commit을 다 한상태에서...

배경색을 기존으로 변경하려면 git checkout을

사용합니다. 해시코드를 넣으면(id) 됩니다.

 

 

바로 전의 커밋으로 돌아오면

배경색이 바뀌어 있음을 알 수 있습니다.

 

여기서 다시 돌아갈려면 git branch 후에

git checkout master로 명령어를 입력하면

마지막 상태로 돌아갑니다. 약간 tricky 합니다.

 

깃은 다 좋은데 너무 복잡하다는 인식이 있습니다.

프로그래밍의 업계의 흐름을 봤을 때

너무 복잡해져서 소수가 그 코드를 장악하는

시간이 길지는 않은 것 같습니다.

 

시간이 지나면 좀 더 대중적으로 이해하고

받아들일 수 있는 버전 관리 시스템이

나올 것 같긴 한데 쨋든 그 전에는

이 시스템이 오래갈 것 같으니까

좀 배워두는게 나쁘지는 않을 것 같습니다.

 

한 유튜버는 깃은 모든 대학생들의

필수 교양으로 들어야한다는 주장까지

한 적도 있는데요. 레포트 버전이 0.5. 0.7,

1.0, 1.2 이렇게 늘어가는데 관리는 안되는

현실은 수많은 사람들이 겪어왔던 일이라

그렇게 과장된 주장은 아니지 않을까 싶습니다.

 

레포트 뿐만 아니라 PPT와 엑셀파일을

작성하는 직장인들에게도 해당될텐데요.

깃은 획기적인 시스템입니다.

수천만 라인의 리눅스 코드의 일관성을

지키기 위해서 시작된 프로젝트이고

여전히 개발이 진행중입니다.

 

여기서 우리가 무엇을 얻을 수 있을까?

생각해보는 것도 나쁘지 안을 것 같습니다.

 

이 정도가 깃의 기초이고

여유가 되면 좀 더 깃에 대해

포스팅 할 예정입니다.

 

 

 

Git - Git 저장소 만들기

2.1 Git의 기초 - Git 저장소 만들기 Git을 사용하는 방법을 알고 싶은데 한 챕터밖에 읽을 시간이 없다면 이번 챕터를 읽어야 한다. Git에서 자주 사용하는 명령어는 모두 2장에 등장한다. 2장을 다

git-scm.com

 

 

Git - Git 저장소 만들기

2.1 Git의 기초 - Git 저장소 만들기 Git을 사용하는 방법을 알고 싶은데 한 챕터밖에 읽을 시간이 없다면 이번 챕터를 읽어야 한다. Git에서 자주 사용하는 명령어는 모두 2장에 등장한다. 2장을 다

git-scm.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band