Medium - 5 Super Helpful Git Commands

원문 - Tate Galbraith

Trend 파악을 위한 Medium 기고문 포스팅 - 진짜 도움되는 5가지 깃 명령어; 여러분의 소스 컨트롤 속도와 정확도를 향상시켜줄 간결한 깃 명령어 리스트

Photo by Brina Blum on Unsplash

우리 모두는 깃이 가끔 어렵거나 헷갈릴 수 있다는 것을 압니다. 그래도 결국에는 모두가 자신만의 방식으로 깃을 사랑하는 법을 배우게 되죠. 이런 고통을 없애는데 도움이 되기 위해서 제가 좋아하는 깃 명령어들을 작성해 봤습니다. 여러분 중 일부는 이런 명령어들을 사용해 봤을 수도 있고 깃을 처음사용 하는 사람들이라면 무슨 명령어인지 이해가 안가실 수도 있습니다. 만약 깃이나 깃허브가 처음이라면 해당 기사를 먼저 읽어보길 추천드립니다.

1.Amending an Existing Commit

git commit --amend

이 명령어는 주로 2번 리스트의 명령어와 함께 쓰입니다. 존재하는 커밋에 새로운 변경을 추가할 수 있어서 기존 브랜치에 커밋을 수정하고 강제로 푸시하여 새로운 버전으로 만들 수 있습니다. 이것은 존재하는 PR을 업데이트 할 수 있는 방법으로 PR 브랜치를 다른 커밋으로 옮기는 것입니다. 이 명령어는 또하나 간단히 존재하는 커밋 메시지를 수정할 때도 사용할 수 있습니다.

2.Force Pushing

git push origin --force

이것은 여러분이 선호하는 작업방식에 따라 사용법이 다를 수 있습니다. 만약 여러분이 커밋으르 추가하거나 기존의 커밋에 꾸겨넣는 방식이 아니라 수정을 하고 강제 푸시를 하길 원한다면 이 방법이 좋습니다. 개인적으로 항상 깃헙 작업방식에 강제 푸시를 선호하는데 이렇게 하면 결과적으로 더욱 간단하고 깔끔한 히스토리가 남기 때문입니다.

이 작업방식을 할 때는 지역적으로 존재하는 브랜치에 작업을 시도하는 것인지 확인하셔야 합니다. 수정하는 커밋의 스텝 번호를 이용하여 모든 변경사항을 추가한 다음에 해당 명령어를 이용하여 프로세스를 완료해야 합니다. 기존 PR에 작은 내용을 수정해야 할 경우 이 방식이 훨씬 빠를 것입니다.

3.Getting the Current Commit Hash

git rev-parse --short HEAD

만약 여러분이 깃허브의 커밋이나 태그를 조회하는 중이라면 우측 상단의 특정 영역에 커밋 해시 정보가 있는 것을 알아채실 겁니다. 이것은 다음과 같이 생겼습니다.

GitHub commit hash information.

현재의 짧은 커밋해쉬를 알아내는 방법에는 여러가지가 있지만 이것이 가장 간단하고 빠른 방법이며 오직 간단한 커밋해쉬만 생산하고 다른 것은 아무것도 하지 않습니다. 현재 커밋해쉬를 알고 싶다면 이 명령어가 보여줄 것입니다.

4. Diff or Log Two Points

git diff <branch_name_1>..<branch_name_2>
git log <tag_1>..<tag_2>

두 브랜치 사이의 차이점을 빨리 확인하고 싶나요? 커밋 사이의 태그가 궁금한가요? 이것은 간단히 해결할 수 있습니다. 이 명령어는 여러분이 두 브랜치의 이름을 알 경우 해당 브랜치 사이의 변경점이나 커밋의 내용을 빠르게 알아보는데 도움이 됩니다. 다른 브랜치의 변경점에 의존하여 새로운 피처를 작업하고 있는 경우 브랜치를 바꿀 필요없이 달라진 점을 빠르게 확인할 수 있습니다.

빠르게 변경 로그를 생성하는 법은 두번째 명령어를 이용해서 할 수 있습니다. 깃 히스토리에서 두 커밋사이의 차이를 볼 수 있을 것입니다.

5. Reset Everything

git reset --hard HEAD

브랜치에서 작업을 하다가 변경점을 만들고 있는 와중에 완전히 갈아엎고 싶을 떄가 있었나요? 그렇다면 이 명령어를 쓰셔야 합니다! 이 명령어는 브랜치를 완전히 지워버리고 깔끔한 상태로 만들어줍니다. 이 명령어를 사용하면 처밋 헤드가 돌아갔다는 메시지가 나타날 것입니다.

Summary

  • 유용한 5가지 깃 명령어 정리

© 2019. All rights reserved.

Powered by Hydejack v8.1.1