[DevOps]Git 명령어 및 옵션(고급)

Philip Sung·2022년 12월 26일
0

[DevOps]

목록 보기
3/6
post-thumbnail

01 개요

본 문서에서는 Git을 사용하기 위한 고급 명령들에 대해 다룬다. 각 명령어에 대한 상세한 옵션과 설명은 -help(콘솔) 또는 --help(브라우저) 옵션을 사용하여 확인할 수 있다.

최종 수정일 : 2022.12.27

git tag
git revert
git reset
git rebase




02 태그

git tag [option1] tagname [CommitHashValue]
git tag
git show-ref --tags

커밋에 태그를 붙인다. [CommitHashValue] 를 입력할 경우 해당 커밋에 대해 태그를 붙인다.

show-ref --tags
해당 옵션을 사용하면 태그와 커밋 SHA-1 체크섬 값을 함께 확인할 수 있다.

option1
-l : 현재 저장소에 있는 태그 리스트를 확인할 수 있다. tagname 없이 사용한다.
-a : git show tagname 명령을 사용해서 확인할 때 확인할 수 있는 메시지를 입력할 수 있다.




03 복구

03.01 revert

git revert SHA-1ChecksumValue

지정한 해시값을 갖는 커밋이 한 것과 반대의 행동을 하는 새로운 커밋을 생성하는 명령어이다.
해당 해시값을 가진 커밋에서 수정했던 내용을 해당 커밋 전의 상태로 되돌린다. 해당 커밋 이후로도 커밋이 있는 경우, 해당 커밋 전의 원래 내용을 적용할 지, 해당 커밋 내용을 제외한 이후의 커밋에서 변경된 내용은 보존할 지 어느것을 선택해야할 지 알 수 없어 충돌이 발생한다.

03.02 reset

git reset [option1] [option2]

option1
각각 헤드(HEAD : 현재 시점의 가장 최근 커밋을 가리킴)의 위치, 인덱스(Index : 커밋 되기 전까지 변경내역을 임시로 담아놓는 저장소)의 내용, 저장소(실제 객체)를 변경하는지 아닌지에 따라 세가지 옵션이 존재한다.

--hard : 헤드, 인덱스, 저장소 모두 변경
--mixed : 헤드와 인덱스는 변경하지만 저장소는 변경하지 않는다.
--soft : 헤드는 변경하지만 인덱스와 저장소 디렉터리는 변경하지 않는다.

option2
HEAD[~ / ^] : 해당 '~' 또는 '^' 문자의 개수만큼의 커밋을 되돌린다. 예를 들어, HEAD~~의 경우 마지막 두 개의 커밋을 초기화한다.
ORIG_HEAD : reset 명령으로 삭제한 내용을 원래 상태로 회복한다.

03.03 checkout 활용(한 개의 파일)

git checkout [option1] -- filename

option을 사용하지 않고 위 명령을 사용할 경우 인덱스에 저장되어 있는 내용으로 저장소의 객체를 되돌린다.

option1
HEAD : 마지막 커밋 시점으로 filename 저장소의 객체를 되돌린다.




04 병합

04.01 rebase

git rebase

핫픽스를 올바를 방식으로 병합하기 위해서 사용한다. 자세한 내용은 이후에 다룬다(22.12.27)

profile
Philip Sung

0개의 댓글