본문 바로가기
[개발] Programming/Git, Github

깃허브 기초3 - 브랜치에 소스 추가 후 커밋, 메시지 수정 (gitbash 이용)

by eatyourKimchi 2021. 7. 2.

 

깃허브 소스 만들고 커밋하기 자습ㅋ

 

 

1. 소스 파일 생성

이번에는 깃 bash를 사용하여 소스를 하나 만든다.

새로운 파일 만들기

$ vi TestService.java 

 

i 누른 뒤에 내용 입력 후 내용 저장.

(리눅스 명령어랑 같으니 자세한 건 생략)

 

 

2. 로컬 레파지토리(브랜치) 등록

'$ git status' 명령어를 쳐보면 아래와 같이 커밋이 없다고 나온다.

또 형상 관리가 되고 있지 않으므로 Untracked files 라고도 나온다.

 

아래 명령어로 해당 소스를 로컬 레파지토리에 등록한다.

$ git add ./소스파일명

 

 

그다음에 다시 git status를 해보면 디폴트 브랜치에 등록되었음을 알 수 있다.

 

 

 

3. 소스 커밋

명령어는 간단하게 아래와 같다.

$ git commit

 

 

그러면 아래와 같이 새로운 창이 뜬다.

커밋 메시지를 작성하는 창이다.

 

 

 

vi 편집기와 동일하게 i로 수정 후 wq 저장.

 

 

 

저장하면 커밋되었음을 문구로 바로 확인할 수 있다.

 

 

 

만약 커밋 메시지가 필자와 같이 짧다면 아래 명령어를 통해

에디터 열지 않고서도 커밋을 수행할 수 있다.

$ git commit -m "커밋 메시지"

 

 

4. 커밋 상태 확인

'$ git status'를 수행해보면 'nothing to commit, working tree clean' 이라고 나온다.

이제 커밋한 소스는 더 이상 없는 상태 즉, 동기화가 다 된 상태라는 의미.

 

커밋 이력을 조회하고 싶으면, 명령어를 수행하면 된다.

$ git log

 

 

만약 명령어 옵션을 보고 싶으면 -help 키워드를 붙이면 된다.

$ git log -help

usage: git log [<options>] [<revision-range>] [[--] <path>...]
   or: git show [<options>] <object>...
    -q, --quiet           suppress diff output
    --source              show source
    --use-mailmap         use mail map file
    --mailmap             alias of --use-mailmap
    --decorate-refs <pattern>
                          only decorate refs that match <pattern>
    --decorate-refs-exclude <pattern>
                          do not decorate refs that match <pattern>
    --decorate[=...]      decorate options
    -L <range:file>       trace the evolution of line range <start>,<end> or function :<funcname> in <file>

 

 

보면 커밋한 시점과 커밋 메시지가 표시되는 걸 확인할 수 있다.

 

 

 

5. 변경된 코드 확인

변경된 코드는 간단하게 조회 가능하다.

$ git diff

 

 

그럼 아래와 같이 추가된 코드는 초록 문구로 표시된다.

(색맹에게는 불리하겠다..)

 

이 명령어로는 복잡한 소스를 보기에는 어렵기에 간단하게 사용할 때 적합할 것 같다.

 

 

 

만약 커밋 메시지를 수정하고 싶은 경우

아래 명령어로 할 수 있는데, 단 가장 마지막 커밋만 수정 가능하다.

$ git commit --amend

 

 

 

 

마지막으로 정리하자면,

 - 작업 공간은 다음과 같다 : 현재 작업 공간 > 스테이징 영역

 - git add는 스테이징 영역에 등록하는 것, 커밋 전 필수

 - git commit은 의미 있는 반영 즉 add 한 소스를 커밋하는 것

 

 

댓글