[git] 계속되는 git 명령어 정리!(4)

Youngwoo Lee·2021년 3월 13일
0

git

목록 보기
3/9
post-thumbnail

이제 마무리 되어 가는 git 명령어 정리 시간...

몇가지 용어만 정리하고 시작해보자!!

통합 브랜치 - 언제든지 배포할 수 있는 버전을 만들 수 있어야 하는 브랜치, 그래서 늘 안정적인 상태를 유지하는 것이 중요하다

토픽 브랜치 - 기능 추가나 버그 수정과 같은 단위 작업을 위한 브랜치, 여러 개의 작업을 동시에 수행할 때에는, 그 수만큼 토픽 브랜치를 생성할 수 있다

1. tag 를 이용한 편한 참조!

$ git tag // 태그 조회
$ git tag -l "v1.8.5*" // 검색 패턴을 사용하여 태그를 검색
$ git tag --list "v1.8.5*" // -l 와 동일
$ git tag v1.4-lw // v1.4-lw 태그(Lightweight 태그) 생성
$ git tag -a v1.4 -m "my version 1.4" // v1.4 태그(Annotated 태그) 생성
$ git show v1.4 // 태그 v1.4 정보 확인

git 태그에는 2가지 종류가 있다

  1. Lightweight 태그
  2. Annotated 태그
  • Lightweight = 단순히 특정 커밋에 대한 포인터
  • Annotated = git 데이터베이스에 태그를 만든 사람의 이름, 이메일과 태그를 만든 날짜, 그리고 태그 메시지도 저장

태그 생성

git tag -a v1.4 -m "my version 1.4 = Annotated 태그를 만드는 방법

-m 옵션으로 태그를 저장할 때 메시지를 함께 저장할 수 있다

git show v1.4 명령으로 태그 정보와 커밋 정보를 모두 확인할 수 있다

다음은 lightweight 태그!

git tag v1.4-lw 기본적으로 파일에 커밋 체크섬을 저장하는 것뿐이다. 다른 정보는 저장하지 않는다

이렇게 tag를 생성할 경우는 git show 를 실행하면 별도의 태그 정보는 볼 수 없고, 커밋 정보만 확인 가능하다

아 물론 지금 커밋 만 태그를 만들어줄 수 있는 것은 아니다

예전 커밋에 대해서 태그하기!

git tag -a v1.3 <커밋 체크섬>

이렇게 체크섬을 통해서 이전에 커밋된 메시지에 대해서 태그를 할 수 있다

태그 공유하기

git push 명령으로는 태그 공유가 이루어지지 않는다. 하지만 마치 branch를 공유하는 것과 같은 방법으로는 할 수 있다

git push origin <태그 이름>

마지막 줄을 보면 태그가 push 되는 것을 볼 수 있다

만약에 한 번에 태그를 여러 개 Push 하고 싶으면 --tags 옵션을 추가하여 git push 명령을 실행한다

이제 이렇게 tag를 여러 가지 생성하고 Pull 을 하면 모든 태그 정보도 함께 전송된다

태그 Checkout 하기

태그가 특정 버전을 가리키고 있고, 특정 버전의 파일을 checkout 해서 확인하고 싶다면 git checkout v1.4 명령어를 사용하면 된다

하지만, 이렇게 checkout 할 경우, "detached HEAD"(떨어져나온 HEAD) 상태가 되며 일부 Git 관련 작업이 브랜치에서 작업하는 것과 다르게 동작할 수 있다

그러니 왠만하면 새로운 브랜치를 생성해서 작업하는 것이 좋다

git checkout -b version2 v1-4
// branch version2 로 이동해서 태그 v1-4 접근

2. git revert vs git reset

  1. git reset

앞에서 설명한대로 Reset은 완전히 시간을 돌려버리는 것이다. 이렇게 될 경우 파일들이 해당 시점으로 전부 돌아가고, 이후 commit 메시지는 전부 사라지게 된다.

git reset --hard <돌아가고싶은 커밋>

A -> B -> C-> D 의 경우에서 B의 커밋이 a0fvf8 인 경우

git reset --hard a0fvf8 을 실행하면, C, D 로그가 완전히 사라진다

하지만

  1. git revert

git revert 의 경우는 다르다

git revert 명령어를 통해서 돌아가게 된다면

와 같이 Revert를 한 로그가 남게 된다.

3. git 커밋 메시지 수정

git commit --amend

위 이미지를 보면 알겠지만 --amend 옵션을 통해서 최신 commit 메시지 수정이 가능함

4. git diff 를 통해서 수정 사항을 살피기

git diff 를 통해서 이전 커밋과 어떤 차이가 있는지를 확인할 수 있다


5. git stash를 통한 임시 저장

git stash

아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있는 명령어이다. 아직 완료하지 않은 작업들을 commit 하지 않고 나중에 꺼내와 마무리할 수 있다

git stash list

여러 번 stash를 실행했을 경우 목록으로 stash를 관리할 수 있다

git stash apply

위의 명령어를 통해 했던 작업을 다시 가져올 수 있다

profile
iOS Developer Student

0개의 댓글