push되지 않은, 직전 commit 내역 수정하기!

pengooseDev·2023년 4월 9일
0
post-thumbnail

앗! commit에 변경사항이 누락되었다!

a 컴포넌트를 작업한 뒤, add, commit을 진행했다고 가정하자.

commit을 완료한 이후, 디버깅용 console을 지우지 않았다는 것을 뒤늦게 눈치챘다.
이전까진 commit을 수정하기 위해 아래와 같은 방식을 채택하고 있었다.

git add a.tsx
git commit -m "feat: commit a"
# a에 변경사항 발생.
git reset HEAD^
git add a.tsx
git commit -m "feat: commit a"
git push origin feature/pengooseDev/a

위 방식의 경우, git으로 staging 시키는 파일이 많아질수록 굉장히 번거로워진다.
어떻게 하면 조금 더 깔끔하게 관리할 수 있을까?


git commit --amend --no-edit

git add a.tsx
git commit -m "feat: commit a"
# a에 변경사항 발생.
git add a.tsx
git commit --amend --no-edit
git push --force-with-lease origin main

commit을 push하는 원격 저장소가 다른 팀원들과 공유되어있을 경우. 즉, commit이 겹칠 수 있는 경우, git push --force는 지양하는 것이 좋다. 특정 변경 내역이 유실 및 변경되어 conflict가 발생할 가능성이 높기 때문이다.

git push --force-with-lease를 사용하면, 최종 변경사항에서 다른 팀원의 commit이 있는지 확인하는 과정을 거치기 때문에 조금 더 안전하다.

하지만, 결국 코드의 동기화 부분의 문제이기 때문에, 타팀원과의 코드 동기화에 문제가 없다고 판단된다면, 일반적인 push를 사용해도 무방하다. (물론, gitbook에선 코드를 깔끔하게 관리하라는 측면에서 git push --force-with-lease를 권장하고있다.)

0개의 댓글