$git log --pretty=oneline (git log를 한줄로 보고 싶을 때)

git log --pretty=oneline

 

 

$git show 커밋주소 (commit 히스토리 중 특정 commit에서  파일이 어떻게 변했는지 알고싶을 때)

git show 커밋주소( 앞에 4자리정도만 쳐도 찾아준다.)

 

 

$git commit (긴 커밋 메세지를 작성하고 싶을 때)

git commit -> 텍스트 에디터에 커밋 메세지 남기기

 

 

$git commit --amend (이미 작성한 커밋을 수정하고 싶을 때)

(최신커밋을 수정해서 새로운 커밋으로 만들기)

수정하고싶은 파일을 수정하고 다시 add한다

 git add . 
git commit --amend

커밋메세지는 그대로써도 되고 수정하려면 i로 수정하기

git log로 다시 커밋확인하면 커밋 주소가 달라지는것을 볼 수 있다.

 

 

 

$git diff 이전커밋주소 이후커밋주소 (두 커밋간의 차이점을 알아보고 싶을 때)

git log --pretty=oneline
git diff 이전커밋주소 이후커밋주소 

 

 

깃에서 HEAD란?

 

어떤 커밋 하나를 가리키는 것으로 해드가 가리키는 커밋에 따라 워킹 디렉토리를 구성한다.

(보통 가장 최근에 한 커밋을 가리킴)

 

 

HEAD가 이전의 커밋을 가리키게 바꿀려면 (과거 커밋으로 돌리고 싶을 때)

git reset --hard 가고싶은커밋의주소
git reset HEAD^ (해드가 가리키는 커밋의 바로 이전커밋으로 이동)

reset을 하면 vs코드 내부의 이전 코드들은 사라진다.

 

 

$git reset  (과거의 커밋으로 되돌릴때)

git reset에는 3가지 옵션이있다.

--soft : 레파지토리가 헤드를 가리키게 되고 스테이징도 전으로 리셋x, 워킹디렉토리 내용 안사라짐

-> 최근 작업물에 영향없음!

--mixed : 레파지토리가 헤드를 가리키고 스테이징도 전으로 리셋o,  최근에 작업했던 모습 그대로 남는다.

--hard : 레파지토리가 헤드를 가리키게되고 스테이징도 전으로 리셋o, 가리키는 해드주소의 코드로 돌아가진다.

-> 커밋 이후로 한 작업이 전부 사라진다라는뜻. 

 

git reset을 한다고 그 이후의 커밋이 사라지는 건 아니다.

git reset 전HEAD주소를 입력하면 다시 HEAD는 사라졌던 커밋을 가리키게 된다.

하지만 히스토리 주소를 모를땐 어떻게 해야할까?

그땐 git reflog 를 사용한다.

 

 

 

$git branch -b 브랜치명 (브랜치 만들고 바로 들어가는 명령어)

git branch -b 브랜치명

 

 

$git merge --abort (다른 브랜치를 머지하려다가 conflict가 발생할때)

  • conflict가 발생한 부분을 직접 수정해서 해결하고 커밋을 해서 머지를 마무리하는 방법과
  • 일단 머지 작업을 취소하고 원래 상태로 돌아오는 방법

두 가지가 있다. 이때 일단 머지 작업을 취소하려면 

git merge --abort

 

 

$git revert 작업을 되돌리고 싶은 커밋의주소 (이미 remote레파지토리에 push 한 상태에서 수정하기)

 

git revert 작업을 되돌리고 싶은 커밋의주소

커밋메세지를 입력하면 되돌아감.

 

 

 

merge와 rebase 차이점

결과물은 같다.

1. rebase는 새로운 커밋을 만들지 않는다.

2. rebase로 만들어진 커밋 히스토리는 merge로 만들어진 커밋 히스토리보다 더 깔끔하다.

 

 

 

$git stash

최근 커밋 이후로 작업했던 내용은 모두 스택에 옮겨지고

워킹 디렉토리 내부는 다시 최근 커밋의 상태로 초기화된다.

(작업한 내용은 어차피 스택에 저장되어있으니까 상관없음)

스택에 저장한 내용을 불러올땐

git stash apply를 입력한다.

 

stash는 잘못된 브랜치에서 작업했을때도 유용하게 사용된다.

git stash로 스택에 작업 내용을 저장한 다음

원래작업할 브랜치로 이동해준다.

git stash list (stash된 리스트 확인한 후에 적용하기)

git stash apply를 하면 된다.

 

 

커밋 메시지 작성 가이드라인

(1) 커밋 메시지의 제목과 상세 설명 사이에는 한 줄을 비워주기

(2) 커밋 메시지의 제목 뒤에 온점(.)은 붙이지않기

(3) 커밋 메시지의 제목의 첫 번째 알파벳은 대문자로 작성

(4) 커밋 메시지의 제목은 명령조로 작성(Fix it / Fixed it / Fixes it)

(5) 커밋의 상세 내용에는

  • 왜 커밋을 했는지
  • 어떤 문제가 있었고
  • 적용한 해결책이 어떤 효과를 가지는지

(6) 다른 사람들이 자신의 코드를 바로 이해할 수 있다고 가정하지 말고 최대한 친절하게 작성

 

 

복사했습니다!