Git이란 무엇일까? 최대한 쉽게 정리해봤습니다. /사용법

Git, Github 개발자들이 너무나 많이 사용하고 있는 것이죠. 사실 깃이니 깃허브니 하는 것은 개발작업의 특성상 협업 과정에서 파일관리를 위해 필요한 것입니다. 하지만 개인이 혼자서 뭔가를 작업할 때도 깃, 깃허브는 아주 유용합니다. 오늘은 Git 이 어떻게 사용되는지 살펴보고 최대한 쉽게 알려드려 볼게요. 저도 초보거든요.

 

Git이란?

Git사용하는 방법

- Git설치하기

- 터미널프로그램 

- Git 설치여부 확인하기

- 소스트리 Git GUI 다운로드, 설치

- Git 비주얼스튜디오 코드 연동하기

- Git 사용하기 / 소스트리로 Git관리하는 방법

- Git Reset
- Git Revert

- Git Merge

 

 

 

Git이란?

 Git이라는 단어가 갖는 의미도 궁금하실텐데요. 저는 이게 궁금해서 한참 검색을 했었습니다. 깃을 처음 만든 사람은 리누스 토발즈입니다. 리눅스 만든 분이죠. 이분은 버전관리 프로그램으로 유료 프로그램인 비트키퍼라는 걸 썼었는데 어떤 이유로 비트키퍼 개발사 측에서 리눅스쪽에서의 접근을 제한해 버렸다고 합니다. 그래서 리누스 토발즈는 새로운 프로그램으로 이주하지 않고 직접 만든 것이 Git이라고 하죠. 깃은 뜻이 없다고도 하고 Got it이라고도 하고 말이 많지만 영국속어로 '고집쟁이'라는 뜻이 있다는데요. 이쪽이 가장 맞는 말 같습니다. 어쨌든 리누스토발즈가 2주만에 만들어 냈다는 버전관리 프로그램이 Git입니다.

 

회사에서 문서나 이미지 하나만 만들어도 버전관리는 정말 중요하죠. 그래서 우리는 가나다.doc, abc.jpg 를 다시 가나다_최종.doc, abc_final.jpg, 마침에 가나다_최종222.doc,  abc_final_real_final_2021_088_05.jpg 까지 이르는 고난을 겪곤 합니다. 우리가 이렇게 버전을 관리할 수 밖에 없는 이유는 고치고 고쳐서 마지막 것이 채택되는 것이 아니라 "세번째 것 가져왔던 거 있지? 그게 젤 나은 거 같으니까 그걸로 가자, 파일 가지고 있지?" 했을 때 당황하지 않기 위함이죠. 그리고 협업을 하고 있다면 문제는 더 심각할 수도 있습니다. 홈페이지 작업하나만 해도 퍼블리셔가 업데이트해놓은 것을 다시 개발자가 뒤엎어버리건 누가 최종적으로 수정했는지 알길이 없어서 버그 수정이 간감한 지경에 이르는 경우도 종종있거든요. 내가 혼자 개발작업물의 파일을 관리할 때보다 훨씬 복잡한 이해관계가 생길 수도 있고 혼자 작업을 할 때도 자칫 실수를 했을 때 어떤 특정한 시점으로 돌아갈 수 있다면 그보다 안심되는 일은 없을 거예요. 그래서 (자동으로) 버전을 관리해줄 수 있는 프로그램은 개발작업에 있어서 상당히 유용한 프로그램이고 여러가지 파일을 일일이 생성하지 않아도 되는 것이죠. 

 

Git 홈페이지

 

Git

 

git-scm.com

git 홈페이지

깃은 맥에 있는 히스토리 관리 기능하고 비슷하다고 할 수 있습니다. 맥의 타임머신은 문제가 발생하기 이전 시점으로 복원이 가능하죠. 깃도 그렇습니다.

 

Git 사용하는 방법

자 그럼 깃을 사용하는 방법을 알아보겠습니다. 버전관리를 하는 프로그램이라고하는데 어떻게 작동하는지, 설치는 어떻게 하는지도 같이 살펴볼게요.

 

Git 설치하기

깃은 명령어 기반의 프로그램입니다. 리눅스 개발자가 만든 프로그램 답죠. 커맨드라인 기반의 프로그램이라 여기서 저같은 초보자들이 멈칫하게 될텐데요. 알아두면 일단 편리하니 조금 더 힘을 내보도록 하죠! 처음엔 터미널을 이용해 커맨드 방식을 익히고 나면 나중에 UI도 있으니 그때 더욱 쉽게 이해가 되고 편리하게 사용할 수 있습니다. 깃 홈페이지에 보면 Git다운로드와 더불어 GUI 클라이언트도 다운로드할 수 있거든요. 

 

Git GUI 클라이언트

잠깐 GUI 클라이언트를 살폅보면 다른 것은 모르겠고 위 이미지의 오른쪽에 보이는 소스트리라는 프로그램이 인기가 높습니다. 나중에 소스트리를 이용해서 관리하는 것도 살펴보도록 하겠습니다. Git 홈페이지에는 물론 이외에도 다양한 GUI 프로그램들이 있으니 어느정도 익히고 나면 본인의 스타일에 맞는 프로그램을 선택하면 되겠습니다. 그리고 Git의 모든 기능을 사용할 수 있는 GUI프로그램은 찾기 어렵다고 합니다. 그러니 제대로 익히려면 터미널에서 명령어를 이용하는 게 깃을 가장 잘 사용하는 방법입니다.

 

터미널 프로그램

터미널은 OS 별 기본 터미널을 쓰셔도 되고 맥에서는 iTerm2 를 많이 쓰더라구요. 기능이 더 뛰어납니다. 윈도우에서는 cmder을 많이 추천하시더라구요. 

 

iTerm2 / cmder

윈도우를 사용하시는 경우 cmder를 설치하면 깃을 따로 설치하지 않아도 Git이 포함되어 설치됩니다.

 

Git 설치여부 확인하기

혹시 이미 깃이 설치되어 있을 수도 있으니 간단한 명령어로 깃 설치 여부를 확인해볼 수 있어요. 

git --version

 저는 위와 같이 이미 설치가 되어 있는데요. 혹시 설치되어 있지 않다면 위 홈페이지에서 다운로드 하시면 됩니다. 다운로드도 터미널에서 명령어를 입력해서 설치하는 방식이에요. 윈도우에서는 exe 파일을 다운로드 해서 실행하도록 되어 있습니다.

 

소스트리 (Sourcetree) Git GUI 다운로드

GUI프로그램은 소스트리를 다운로드 합니다.

git 이란, 사용방법

소스트리를 설치하고 실행해보면 아래와 같은 창이 나타납니다. 

소스트리

이제 깃을 사용할 준비가 다 되었습니다.

깃을 설치하면 환경설정 내용은 .gitconfig 안에 설정내용이 담깁니다. 터미널에서는 git config --list 명령어로 설정내용 확인이 가능합니다. 

 

이름과 이메일 등록하기

git config --global user.name "sensepress"
git config --global user.email "sensepress@abc.com"

 

git 이란, 사용방법

 

Visual studio code 이용하기

비주얼스튜디오 코드 명령팔레트에서 code 를 검색하고 "Shell Command : Install 'code' command in PATH를 선택해줍니다. 이제부터는 터미널에서 code 를 입력하면 비주얼스튜디오 코드가 뜨게 됩니다.

 

git 이란, 사용방법

 

프로젝트를 관리할 폴더를 하나 만들어줍니다.

저는 /project 라는 폴더를 만들고 안에 test 폴더를 추가했습니다. 추가하고 비주얼스튜디오 코드에서 test폴더를 열어두었습니다. 그 아래에 dog, cat 두개의 파일을 만들었어요.

 

git 이란, 사용방법, 비주얼스튜디오코드

 

비주얼스튜디오 코드에서 터미널을 열어주세요. 터미널을 열어보면 이미 경로가 test로 잡혀 있는 것을 확인할 수 있습니다. 

git 이란, 사용방법, 비주얼스튜디오코드

터미널에서  git init 을 입력해보세요.  저는 아래와 같이 뭐가 잔뜩 나왔는데요. 처음이라 그렇고 다음번 부터는 그렇지 않더라구요. 

어쨌든 git: (master) 라는 것이 생겼습니다. Git repository라는 것이 생성되면서 관리가 되기 시작한 거죠.

 

git 이란, 사용방법, 비주얼스튜디오코드

여기서 추가로 user name과 use email 을 추가해주세요.

 

git config user.name
git config user.email

맥에서는 숨김파일(폴더)를 보이게 하면 .git이라는 폴더가 생긴 것을 확인할 수 있습니다. 이제 새로운 버전들이 이 폴더 안에 생성되는 거죠.

git 이란, 사용방법, 비주얼스튜디오코드

 

소스트리(Soucetree)로 관리하는 방법

앞서 설치한 소스트리를 열어서 작업관리할 폴더를 선택합니다.

 

git 이란, 사용방법, 비주얼스튜디오코드

생성하기를 누르면 소스트리에 새로운 깃(test)이 생성되는데요. 더블클릭해보면 아래와 같이 파일 관리가 되는 것을 확인할 수 있고 마찬가지로 숨김파일에 .git 이 생성됩니다. 

git 이란, 사용방법, 비주얼스튜디오코드

아무래도 소스트리를 이용하면 훨씬 쉬워지는 것이죠.

 

이제 git 의 타임머신에 저장될 것을 지정해봅니다. 비주얼 스튜디오코드 터미널에서 git status를 입력해보면 No commits yet 라고 나오고 아직 track - 추적되지 않는 파일들이 붉은 색으로 표시되어 있습니다. 이제 test 폴더 안에 있는 모든 파일이 추적관리될 수 있도록 지정해줘야 합니다.

 

git 이란, 사용방법, 비주얼스튜디오코드

 

git add -A

폴더 안에 있는 모든 파일이라는 의미로 대문자 -A 를 써서 추가를 해줍니다. 추가를 하고 다시 git status로 확인해보면

 

git 이란, 사용방법, 비주얼스튜디오코드

위와 같이 committed (저장될 것들)로 변경된 것을 확인할 수 있구요. 아직은 저장된 것은 아닌 것은 동일합니다. 그럼 저장을 해야겠죠?

git commit

 이렇게만 적으면 저장하는 메시지가 빠져 있어서 안된다고 나올 거예요.

git commit -m "first Commit"

git 이란, 사용방법, 비주얼스튜디오코드

드디어 2개의 파일이 비로소 저장됩니다.

 

소스트리에 가서 확인해봐도 이제 커밋할 내용이 없다고 나옵니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

파일을 하나 더 추가해보겠습니다. 파일이름을 bird  name: chichi 라고 할게요. 소스트리에 확인해보면 이제는 bird가 대기중인 것으로 나옵니다. 저장되어야할 것을 선택하고 하단에서 명령어를 입력해주세요. add bird

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

 

이렇게 하면 앞서 비주얼스튜디오 코드에서 했던 것처럼 동일하게 저장이 이뤄집니다. 관리가 어떻게 되는지 살펴보겠습니다.

저는 아래와 같이 앞서 만들었던  dog 는 삭제를 하고 cat 는 name을 야옹으로 변경했고 apple name:iphone를 추가했습니다. google name: 광고 애드센스 라는 파일도 추가했습니다. 파일을 생성하면 저장을 해줘야 합니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

git status로 확인해보면 modified (수정), deleted(삭제)와 add(추가)된 것도 확인할 수 있습니다.

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

소스트리에서도 확인이 가능합니다. 소스트리에서는 각각의 파일들의 상태를 확인할 수 있고 수정된 파일은 이전에 무엇이었는지도 확인이 가능합니다.

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

 

이 3가지 변화 (추가, 삭제, 수정)을 모두 반영해주기 위해서는 ADD MODIFY DELETE 라고 입력해줘야 합니다. 그래야 3가지 변경사항이 모두 저장됩니다. 

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

히스토리를 확인하면 아래와 같이 master branch에 모두 히스토리로 묶여 있는 것을 확인할 수 있습니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

터미널에서 git log 를 입력하면 지금까지 저장된 내역을 확인할 수 있습니다.


Git으로 이전 상태 복원하기(1) reset

git reset을 이용하는데요. 터미널에서 git log 로 확인한 복원시점의 앞 6자리 일련 번호를 적어줍니다. 

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

git reset 74e211 --hard

이런 식으로 마지막 부분에 --hard를 붙여주면 되돌릴 수 없는 상태로 복원한다는 것입니다.  소스트리에서도 확인해보겠습니다.

원하는 시점을 선택한 후 마우스오른쪽 버튼을 눌러 마스터를 이 커밋으로 초기화를 누릅니다. 

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

그런 다음 옵션을 선택할 수 있는 창이 나타나는데요. 옵션에서 하드를 선택하면 앞서 터미널에서 했던 것처럼 되돌릴 수 없은 상태로 적용하게 됩니다. 

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

변경을 하고 나면 삭제했던 dog은 되살아나고 나중에 추가했던 google, apple는 삭제가 되었습니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

소스트리의 히스토리에서도 복원 이후 시점에 작업했던 내용이 사라진 것을 확인할 수 있습니다.

 

Git 이전 상태로 복원하기 (2)  revert

revert를 사용하는 방법도 reset과 동일합니다. 터미널에서는 git revert 일련번호 앞 자리를 입력합니다.

그러면 아래와 같이 나타나면서 적용이 되고 파일이 삭제됩니다. 그런데 실제로 결과는  reset과는 차이가 있습니다. 

 

git revert &74211e
Revert "ADD MODIFY DELETE"
3 files changed, 2 insertions(+), 2 deletions(-)
create mode 100123 dog
delete mode 100123 google

revert를 소스트리에서 살펴보면 커밋되돌리기 입니다. 마우스 오른쪽 버튼을 누르고 커밋되돌리기를 하면 승인을 되돌리겠는지 물어보는데요.확인을 눌러주면 이전 상태로 복원이 됩니다. 대신 다시 적용했던 것으로 되돌릴 수가 있습니다. reset에서 되돌릴 수 없던 것과는 차이가 있네요.

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

 

brach 만들기

작업을 하다 보면 새로운 아이디어가 떠올랐는데 함부로 파일을 교체해볼 수는 없고 테스트 버전을 만들고 싶을 때가 있습니다. 이럴 때는 branch라는 것을 생성하면 새로운 복사본으로 테스트 버전처럼 만들어서 작업을 진행할 수 있는데요. 나중에 브랜치로 만든 것을 버리거나 기존 작업보다 나은 방식이면 이를 master로 적용할 수 있습니다.

 

git branch test-dev

 

test-dev라는 것을 적어주고 결과를 확인하기 위해 git branch를 입력해 보면 아래와 같이 master와 test-dev가 같이 있는 것을 볼 수 있습니다. 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

참고로 위의 화면은 vi 에디터로 들어간 상태라 빠져 나올 때는 :q를 입력해줍니다.

다시 터미널에서. git checkout test-dev 를 입력해주면 test-dev로 변경되는 것을 확인할 수 있습니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

이제 다시 bird를 지우고 tesla 를 추가한 다음 이번엔 cola로 코밋을 해줍니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

파일에 bird는 삭제되고 tesla가 추가된 것을 확인할 수 있습니다. 그리고 다시 checkout으로 master로 돌아가보면 bird는 남아 있고 tesla는 사라져 있습니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

소스트리에서는 master와 브랜치를 브랜치 메뉴에서 더블클릭해서 이동할 수 있습니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

소스트리에서 새로 추가한  test-dev에 새로운 브랜치를 추가할 수 있습니다. test-dev를 선택하고 상단메뉴의 새브랜치를 선택하고 이름을 주면 되는데요.  test-dev-2 라고 하고 새 브랜치 체크아웃을 선택한 상태에서 브랜치 생성을 하면 새로운 브랜치가 추가됩니다.

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

 

merge

이렇게 적용을 하고 마스터로 돌아와 보니 새로 만든 test-dev에 있는 내용이 맘에 든다면 브랜치를 마스터로 적용시킬 수 있습니다. 이때 merge 를 사용합니다. 소스트리에선 병합입니다.

git merge test-dev

소스트리에서 보이는 최종적으로 적용된 상태입니다.

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

 

소스트리에서는 마스터가 선택된 상태에서 merge (병합할 브랜치에서 마우스 오른쪽을 클릭합니다.

 

git 이란, 사용방법, 소스코드, 비주얼스튜디오코드

 

마치며,

Git은 한마디로 개발작업중에 버전관리를 해주는 프로그램입니다. 쉽게 정리를 해보려고 했지만 사용자체가 우리가 흔히 파일관리하는 것에 비하면 복잡합니다. 완전히 자동도 아니고 명령을 줘야만 관리가 되기도 하구요. 하지만 현재 가장 널리쓰이는 것이 Git이니 이쪽 분야에 관심이 있으신 분들께 도움이 되었으면 좋겠습니다.

 

고맙습니다.

반응형

댓글

Designed by JB FACTORY