[git] git 처음부터 살펴보기

개요

git 에 대해 어렴풋이 알던 부분을 제대로 정리하고 싶어 글을 남긴다. 회사에서는 git을 사용하고 있지는 않지만, 개인 사이드 프로젝트에서 git 을 사용하려고 한다. 현업에서는 git bash 터미널을 이용하기보다는 소스트리를 많이 사용한다고 한다. 두 가지 방식 모두 한번 해보고자 한다.

프로젝트 생성 및 git 레파지토리 생성

인텔리제이에서 심플한 자바프로젝트를 하나 생성한다. git 을 사용하기 위해 터미널을 열어야 하는데 기본 설정이 cmd.exe 로 되어 있다. git bash 를 이용하면 좀 더 git 사용이 편리하고, 중요한 부분은 윈도우에서 리눅스 계열 명령어를 사용할 수 있다는 점이다.

인텔리제이 셋팅창에서 ‘terminal’을 입력해본다. path에 ‘powershell.exe’이 설정되어 있다.

image1

path를 아래와 같이 변경한다.

"C:\Program Files\Git\bin\sh.exe" -login -i

image1

인텔리제이를 재기동하면, 터미널창이 git bash로 변경된 것을 볼 수 있다

image1

터미널에서 git init 명령어를 입력하면, .git 디렉토리가 생성된다. git 변경내역이 관리하는 폴더로서 해당 폴더가 git 으로 관리되는 것을 보여준다. 해당 폴더가 삭제되면 모든 변경 내역이 삭제된다.

image1

image1

소스 코드 변경 기본

  • posts.java 와 User.java 를 생성 후, 터미널에서 git status 를 입력해보자. 현재 변경된 코드 상태 정보를 보여준다. 빨간박스 처럼 새로 추가된 코드 내역들이 보인다.

image1

  • add 명령어를 이용해 프로젝트의 변경사항을 타임캡슐(버전관리)안에 담기
  • 인텔리제이에서는 자동으로 git으로 add할 수 있다.

image1

  • git bash 터미널에서 아래와 같이 명령어를 사용해도 된다.

image1

  • 모든 파일을 add 하기 위해서는 git add . 을 입력한다.

  • commit 명령어를 이용해 add 시킨 변경사항들에 대해 버전을 생성해준다.
  • git commit 명령어를 입력해보자.

image1

  • 위 그림처럼 vim 에디터에서 커밋 메시지를 입력할수도 있으나, 커밋할때 직접 메시지를 지정할 수 있다.
  • 커밋 메시지 입력을 위해 다음과 같이 입력한다. git commit -m 'my commit message'

image1

소스 코드 되돌리기

  • reset 과 revert 2가지 방식이 있다. reset : A-B-C-D => A-B revert : A-B-C-D => A-B-C-D-B
  • 잠시 .git 폴더를 다른 곳에 백업해둔다.(테스트 후 원복)
  • git log 를 입력한다. 지금까지 commit 한 내역이 시간순으로 나와있다.

image1

  • reset 할 버전으로 돌아간다. image1
  • 소스트리에서 보면 이전 버전으로 돌아간 것을 볼 수 있다.

  • 잠시 백업한 .git 파일을 원복한 후 마지막 commit 시점을 찾아 reset 한다. 그럼 처음 reset 하기 전으로 돌아갈 수 있다.
  • git reset --hard 만 입력하면, 마지막 커밋 시점으로 돌아간다.

image1

  • revert 방식으로 되돌아가보자.
  • name 과 age 를 추가하고,, name 이 추가된 시점으로 되돌린다. image1
  • 충돌이 일어난다. 충돌을 해결하고 image1 image1
  • 충돌이 발생된 부분이 표시된다. 수정 후, git revert --continue 를 통해 revert 를 완료한다. image1

Reference

Categories:

Updated:

Leave a comment