커밋을 스쿼시하는 방법

Git으로 작업할 때 중요한 규칙 중 하나는 커밋 기록을 깨끗하게 유지하고 "WIP", "TODO"등과 같은 무의미한 커밋 메시지를 작성하지 않는 것입니다.
그러나 때때로 사람들은 정직한 실수를 할 수 있습니다. 또는 코딩을 하고 작은 변경으로 여러 번 커밋한 다음 커밋 기록을 정리하고 변경 사항을 하나의 커밋으로 그룹화할 수 있습니다.

재설정 명령 사용



이를 수행하는 한 가지 방법은 커밋 기록을 재설정하는 것입니다. 예를 들어 두 개의 커밋이 있고 이를 하나로 스쿼시하려면 다음과 같이 하면 됩니다.

# Reset the history reverting back to the past 2 commits
git reset --mixed HEAD~2


이제 지난 두 번의 커밋에서 변경한 코드가 다시 커밋할 준비가 되었음을 알 수 있습니다.

# Stage all the files
git add -A
# Commit the staged files
git commit -m "Your message"


이제 리모컨에서 기록을 다시 작성하려면 --force 플래그로 푸시하여 해당 변경 사항을 리모컨에 적용해야 합니다.

git push --force origin <YOUR-BRANCH-NAME>


그리고 이제 당신의 기록은 깨끗합니다. 아무 일도 일어나지 않았습니다 :-)

rebase 명령 사용



이를 수행하는 또 다른 방법은 rebase 전략을 사용하는 것입니다.

# this lets you interactively select commits
git rebase -i HEAD~2


그런 다음 s 대신 pick를 설정하여 스쿼시하려는 커밋을 선택하고 사용 중인 편집기로 저장하고 커밋 메시지를 편집합니다.

그리고 이전과 마찬가지로 다음과 같이 기록을 재정의해야 합니다.

git push --force origin <YOUR-BRANCH-NAME>


이것은 훨씬 빠른 방법이며 스쿼시 커밋을 선택할 수 있다는 장점이 있지만 단점은 정확히 무엇을 하고 있는지 모르는 경우 rebase를 사용하는 것이 문제가 될 수 있다는 점입니다. ) .

좋은 웹페이지 즐겨찾기