
문제 상황
git rebase를 이용하여 develop 브랜치의 정보를 받아오려고 했는데 문제가 발생해서 다른 사람의 커밋까지 복사해서 가져오게 되었다.

해결방법
1. git reflog
git reflog
위 명령어를 사용하여 커밋 기록을 확인

기록 확인을 마치면 q를 입력하여 뒤로 나간다
2. git reset
git reset <commit id>
git reflog로 확인한 커밋 기록에서 이동하고 싶은 커밋 아이디를 사용한다
즉 git reflog 결과에서 "refactor: ToDoService 리팩토링" 커밋으로 이동하고 싶은 경우 7f80143을 이용한다.
=> git reset 7f80143
3.1 깃허브에 올리기(문제가 있는 브렌치에 다시 올리는 경우)
git add .
git commit -m "메시지"
git push -f origin <브랜치 이름>
1. git add . 를 이용해 모든 파일을 선택한다.
2. git commit 으로 어떤 작업인지 설명한다.
3. git push -f origin <브렌치 이름>으로 강제로 깃허브에 기존에 있는 내용을 무시하고 로컬에 있던 커밋 내용을 올린다
-f는 force라는 의미로 이 옵션을 사용하면 로컬과 깃허브의 커밋 정보가 다른 상황에서 오류가 발생하지 않고 강제로 push하기 때문에 조심해서 사용해야 한다.
3.2 깃허브에 올리기(새로운 브랜치에 올리는 경우)
git checkout -b <새 브랜치 이름>
git add .
git commit -m "메시지"
git push origin <새 브랜치 이름>
1. git checkout -b <새 브랜치 이름>
git chechout <브랜치 이름>은 다른 브랜치로 이동할 수 있는 명령어 이고, 여기에 -b 옵션을 사용하면 새로운 브랜치를 생성하고 새 브랜치로 이동하게 해준다
2. add -> commit -> push 순으로 진행하며 reset한 커밋을 새로운 브랜치에 push 한다
'Git' 카테고리의 다른 글
| git-secret 사용하기 (0) | 2024.12.01 |
|---|---|
| [git] 기본적인 git 사용 (0) | 2024.01.26 |