[Git] 고급 명령어

2022. 3. 14. 09:21Git

반응형

git log --graph

  • 로그를 그래프 형태로 보기 좋게 출력해준다
$ git log --graph

git commit --amend

  • 마지막 커밋의 내용을 수정합니다.
$ git commit --amend

git revert

  • 이전의 커밋 내용으로 되돌려 새로운 버전의 커밋 내역을 만들어냅니다
  • 기존의 버젼으로 넘어가는 것이 아니라 기존 내용을 가져와서 현재에 덮어써 새로운 커밋 버전을 만들어냅니다.
$ git revert <돌아갈커밋코드>

git reset

  • 모드
    • hard : 완전히 되돌림 <head : 변경, index : 변경, 저장소 디렉토리 : 변경>
    • mixed : 인덱스의 상태를 되돌림, 기본값 <head : 변경, index : 변경, 저장소 디렉터리 : 변경 안 함>
    • soft : 커밋만 되돌림 <head : 변경, index : 변경 안 함, 저장소 디렉터리 : 변경 안 함>
  • 옵션
    • ~ 은 커밋 내역 하나를 의미로 표시한 수만큼 커밋을 되돌립니다
    • ORIG_HEAD는 reset 명령을 실행했을 때 내역을 보관, 해당 명령을 통해 git reset으로 지운 커밋을 되돌릴 수 있다 
$ git reset --soft HEAD~~~
 > 커밋은 바뀌지만 실제 파일 내용은 바뀌지 않음
 > 3개 전의 커밋 버전으로 헤드가 이동
 
 $ git reset --soft ORIG_HEAD
 > reset 취소

git checkout HEAD --filename

  • 특정 파일을 최종 커밋 시점으로 되돌린다
  • --가 없을 경우 파일 이름이 브랜치 이름과 같은 이름일 경우 해당 브랜치로 체크아웃하거나 특정 커밋 시점으로 저장소 전체가 되돌아갈 수 있으니 조심해야 합니다
$ git checkout HEAD --파일이름

git rebase

  • 브랜치 이력을 확인하면서 병합
  • command line에서의 실행을 추천하고 싶지 않음 IDE에서 하길 추천
  • --continue : 충돌 상태를 해결한 후 계속 작업을 진행
  • --skip : 병합 대상 브랜치의 내용으로 강제 병합, 이후 해당 브랜치에서 git rebase를 진행할 수 없음
  • --abort : git rebase 명령 실행을 취소

git rebase -i

  • rebase 한 커밋 내역 합하기
  • rebase 할 일이 있다면 IDE에서 하자
반응형

'Git' 카테고리의 다른 글

[Git] Tag 명령어  (0) 2022.03.14
[Git] Github 한글화 플러그인  (0) 2022.03.14
[Git] 명령어 정리 (with Github)  (0) 2022.03.14
[Git] Branch와 Checkout  (0) 2022.03.14
[GIT] 설치 및 저장소 생성  (0) 2022.03.14