프로그래밍에 있어, 코드를 관리하기에 아주 좋은 도구가 있는데, 그게 바로 Git이다.
이번에는 Git의 사용법에 대해서 간단히 알아보겠다.
Git은 왜 쓰는건가?
-
git을 이용하면, 내가 작업중인 프로젝트의 변화과정을 그때 그때 저장해놓을 수 있다.
-
다시 말해, 돌이키기 어려운 실수를 했거나 어딘가 잘못됐을 때 이전의 상태로 다시 되돌릴 수 있는 것이다.
-
그리고 git을 사용하면, 기존의 파일에는 영향을 주지 않고 새로운 작업을 할 수 있게 해준다.
-
결과적으로, git을 사용하면 프로젝트 파일들을 매번 백업할 필요가 없어지고, 코드 관리가 편해진다. 즉, 버전 관리가 손쉬워진다.
준비물
Git 사용법
git을 어떻게 사용하는 지, 어떤 기능이 있는 지 간단하게 알아보겠다.
먼저, git 사용의 전반적은 흐름은 다음과 같다.
이번에는 local repository에서 git을 사용하는 방법에 대해 알아보도록 하겠다.
git의 가장 기본적인 기능 살펴보기
-
local repository 만들기
-
git에는 두가지 저장소(repository)가 있다. 하나는 local repository, 하나는 remote repository다.
-
만드는 방법은 간단하다. 먼저, 컴퓨터에서 원하는 위치에 폴더 하나를 만든다.
-
다음으로, 터미널에서 만들어놓은 폴더로 가서
git init
을 친다. -
그럼 이제 해당 폴더는 git의 관리하에 들어가게 된다.
-
-
git 기본 설정해주기
-
역시 간단하다. 터미널에서 다음 명령어를 입력해준다.
git config --global user.name "[내 이름]" git config --global user.email "[내 메일주소]"
-
-
git의 현재 상태 알아보기
-
꼭 필요한 사항은 아니지만, 명령어도 익힐 겸 해보자.
git status
-
이 명령어로 현재 git에 등록될 수 있는 것, 등록된 것 등에 대한 정보를 확인할 수 있다.
-
-
모든 변경사항을 staging area에 등록하기
-
모든 변경사항을 staging area에 등록하고 싶다면, 다음 명령어를 입력하면 된다.
git add -A
-
-
local repository에 변경사항들을 등록하기
-
앞서
git add
를 했다면, 다음 명령어를 입력한다.git commit -m '[이번 커밋에 대한 설명]'
-
-
커밋 내역 확인하기
-
다음 명령어를 치면, 이때까지 커밋한 내역을 확인할 수 있다.
git log
-
이 명령어는 vi editor을 실행하기 때문에 빠져나오려면
:q
를 눌러주면 된다.
-
-
이전의 커밋으로 돌아가기
-
이전 커밋으로 돌아가는 방법은 돌아갈 과거 이후의 커밋은 삭제해버리는, 완전히 돌아가는 방법과 이후의 커밋을 남겨두는, 복원할 여지를 남겨두고 돌아가는 방법으로 두가지가 있다.
-
먼저 완전히 돌아가는 방법은,
git log
로 확인한 커밋 내역 중, 원하는 커밋의 번호 앞 6번째까지 복사한 후, 다음 코드를 입력한다.git reset [복사한 번호] --hard
-
명령어를 입력하고 나면 이제 해당 시점으로 오게 되었고, 해당 커밋 이후 시점으로는 돌아갈 수 없다.
-
복원할 여지를 남겨두고 돌아가는 방법은,
git log
를 통해 돌아갈 시점이 아닌, 취소할 시점을 찾는다. 돌아가고자 하는 시점 바로 다음 커밋이라고 볼 수 있다. 그리고 다음 명령어를 입력한다.git revert [취소할 커밋의 번호 앞 6자리]
-
git revert
로 과거로 돌아갔다면,git reset
을 이용해 다시 현재로 돌아오는 것도 가능하다.
-
branch 이용해보기
branch를 이용하면 작업중이던 폴더에는 영향을 주지 않고 파일을 추가, 삭제, 수정할 수 있게 된다.
기존 코드들을 건드리지 않고 작업할 수 있기 때문에 마음껏 수정을 해보고 정상적으로 작동한다면 그때 변경사항을 master에 적용시켜주면 되는 것이다.
-
branch 만들기
-
다음 코드를 입력해준다. 이를 통해 파일을 복사, 붙여넣기한 것과 같은 효과를 만드는 것이다.
git branch [원하는 branch 이름]
-
-
branch 확인하기
-
다음 명령어를 입력하면, 현재 어떤 branch가 존재하는 지 볼 수 있다.
git branch
-
-
다른 branch로 넘어가기
-
다음 명령어로 다른 branch로 넘어가서 작업을 할 수 있다.
git checkout [넘어가고 싶은 branch 이름]
-
다른 branch로 넘어간 이후에는 작업을 해도 해당 branch에서만 적용된다. 겁먹을 필요없다. 다시
checkout
해서 원래 branch로 넘어가면 모든 상태가 그대로 남아있다.
-
-
branch에서 또 다른 branch를 만들기
-
간단하다. branch에
checkout
된 상태로git branch [원하는 branch 이름]
을 다시 해주면 된다. -
branch안의 branch에서 master로 merge하게 되는 경우, 이전 branch의 변경사항도 다 적용되서 merge된다.
-
-
branch에서 변경된 사항을 master로 들고오기
-
다시 master branch로 돌아온다.
git checkout master
-
다음 명령어로 branch의 변경사항을 가져온다.
git merge [가져올 branch 이름]
-
윈도우에서는 보통 바로 merge되지만, Mac에서는 vi editor이 나와서 커밋 메세지를 작성하게 한다.
:wq
로 저장하고 나오면 된다.
-
-
git의 변화 과정을 시각화하여 보기
-
branch가 많아지고 merge가 잦아지면 어디서 어떻게 변화가 일어났는지 확인하는게 복잡해진다.
-
그럴땐 다음 명령어로 시각화된 커밋 정보를 볼 수 있다.
git log --graph --all --decorate
-
-
merge과정에서 충돌이 일어난다면?
-
충돌이 일어난 부분에서 필요한 부분만 남기고 지워준 후 다시 add, commit 해준다.
-
최대한 충돌을 피하기 위해 다른 branch에서는 같은 파일을 수정하지 않는 것이 좋다.
-
-
다 쓴 branch를 삭제하기
-
다음 코드로 간단하게 branch를 삭제할 수 있다.
-
git branch -D [삭제하고자 하는 branch 이름]
-
다음에는 github을 이용해서 remote repository를 사용하는 방법까지 알아보도록 하겠다.