티스토리 뷰
깃허브 형상관리 툴을 통해서 코드를 원격저장소에 올렸을때, 잘못 올려서 수정하고 싶을때가 있습니다.
오늘은 이때 커밋 초기화 및 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브랜치에는 사용하지 않는것이 좋습니다.
간단한 프로젝트거나 단순 학습 코드 저장용 등의 경우 빠르게 수정한 커밋을 터미널 상으로 올릴 수 있는 방법 중 하나가 되겠습니다.
'협업도구 관리 팁' 카테고리의 다른 글
Github 설정 기초 팁, default branch 변경 설정방법 (0) | 2022.07.10 |
---|---|
git, use a personal access token instead push 오류 해결방법 (0) | 2021.09.21 |
Gitflow, 협업기법 깃플로우 각 브랜치 역할 알아보기 (2) | 2020.09.23 |
Github 깃허브 최근 커밋 삭제, 추가 명령어 사용법 (0) | 2019.07.30 |
Github 깃허브 원격 remote origin 삭제하는 방법 (0) | 2019.07.14 |
- Total
- Today
- Yesterday
- swift문제
- swift
- Collection
- 스위프트
- 개발자문서
- publisher
- Protocol
- 프로토콜
- CoreML
- 컬렉션
- Swift 알고리즘
- 프로그래머스
- 프로그래머스swift
- 백준swift
- 알고리즘문제
- swift 기초
- uikit
- swift알고리즘
- 자연어처리
- ios
- swift 문자열
- createML
- swift reduce
- swift언어
- swift string
- 알고리즘
- 김프매매
- SwiftUI
- 부스트코스
- 백준알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |