티스토리 뷰

반응형

 

 

깃허브 형상관리 툴을 통해서 코드를 원격저장소에 올렸을때, 잘못 올려서 수정하고 싶을때가 있습니다. 
오늘은 이때 커밋 초기화 및 push -f 옵션을 활용해서 원격저장소의 커밋내용을 빠르게 수정하는 방법을 알아보겠습니다. 

해당 방법은 빠르게 원격저장소의 커밋을 수정할 수 있지만, master 브랜치 상에서 잘못 작업할 경우에 데이터손실을 겪을 수 있으니 주의하시기 바랍니다. ㅠ.ㅠ

 

 

 


git 커밋을 잘못 올려버렸을때...

코드를 올리고 봤는데 잘못 코드를 올렸을때가 있을 수 있어요. 근데 이미 원격저장소에 커밋을 올려버렸다면?...

수정이 필요하죠. 그런데 revert 등의 작업 없이 잘못올린 커밋을 reset후에 다시 수정된 커밋으로 새롭게 올리고 싶다면 아래의 방법을 따라가시면 됩니다. 

 

 

git log 로 git 커밋 기록을 확인합니다. 제가 수정하고자 하는 커밋은 "좋은수열_2661 ... " 입니다. 

 

 

 


git 명령어, reset으로 이전 커밋 제거후 새로운 커밋 추가하기

git reset HEAD^로 가장 최근의 커밋을 reset합니다. 이때 커밋을 하드하게 리셋하는게 아니니 수정한 커밋은 남아있습니다. 수정한 커밋은 남아있으니 걱정 안해도 됩니다. 

 

 

git add 좋은수열_.... 로 수정한 파일을 추가합니다.

여기까지 진행하면 로컬저장소에만 수정된 커밋이 있는 상태입니다. 이제 원격저장소에 수정한 커밋을 다시 원격저장소로 올려야겠죠? 원격저장소로 커밋을 올려봅니다. 로컬저장소의 커밋기록 상태를 그대로 원격저장소에 강제로 올리겠습니다. 

 

 

git push -f origin master 로 강제로 master 원격저장소 브랜치로 강제 push를 날렸습니다. 

사실 가급적이면 push -f 옵션은 사용하지 않는게 나을 수 있는데요. 제가 지금 사용하는 방법은 가벼운 목적으로 사용하는 프로젝트 저장소에 사용하는게 좋을 것 같습니다. 

git commit --amend 명령어를 사용하거나, 소스트리 / Fork 등의 GUI를 활용해서 커밋을 수정하는 것도 좋은 방법이 될 것 같습니다.

 

이제 수정한 커밋이 원격저장소에 제대로 들어갔는지 확인해볼까요? github의 해당 프로젝트 커밋내역을 확인해봅니다. 

 

 

다행히도(?) 수정한 커밋이 새롭게 올라온 것을 확인할 수 있었습니다.  😂

 

지금까지 git reset HEAD^ / git log / git push -f 등의 명령어 옵션으로 수정한 커밋을 강제로 원격저장소에 올려보는 작업을 해보았습니다. 다시한번 말씀드리지만, push -f 옵션은 중요한 프로젝트나 master브랜치에는 사용하지 않는것이 좋습니다. 

간단한 프로젝트거나 단순 학습 코드 저장용 등의 경우 빠르게 수정한 커밋을 터미널 상으로 올릴 수 있는 방법 중 하나가 되겠습니다. 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함