Programing

마지막 git 커밋으로 롤백

crosscheck 2020. 8. 9. 09:48
반응형

마지막 git 커밋으로 롤백


나는 방금

git commit -m "blah"

그런 다음 일부 파일을 추가했습니다. 아직 추가 / 커밋되지 않은 현재 파일의 내용을 롤백하고 제거하려면 어떻게합니까?


아래의 원래 답변은 OP 가 찾고 있다고 생각한 것 입니다.

@ChrisNevill의 유용한 의견에 따르면 원래 답변은 귀하 가 찾고 있는 것이 아닐 수 있으며 명확히하기 위해 답변을 업데이트했습니다.

의 Nota 베네 - 앞서 파괴 명령.

Caveat Emptor에 대한 완화 - git reflog 필요한 경우 절약 할 수 있습니다.


→ 업데이트 된 답변

1) 로컬 파일 변경을 실행 취소 하지만 마지막 커밋을 제거하지 마십시오

git reset --hard

2) 로컬 파일 변경 실행 취소 마지막 커밋 제거

git reset --hard HEAD^

3) 로컬 파일 변경 사항을 유지 하고 마지막 커밋 만 제거

git reset --soft HEAD^

→ 원래 답변

"작업 트리를 마지막 커밋으로 재설정"

git reset --hard HEAD^   

"작업 트리에서 알 수없는 파일 정리"

git clean

새로 추가 된 내용과 이미 준비된 (색인에 추가 된) 파일을 제거하려면 다음을 사용합니다.

git reset --hard

최신 커밋 ( "blah"메시지가있는 커밋)도 제거하려면 다음을 사용하는 것이 좋습니다.

git reset --hard HEAD^

추적되지 않은 파일 (아직 색인에 추가되지 않은 새 파일) 및 폴더를 제거하려면 다음을 사용하십시오.

git clean --force -d

git reset --hard 작업 디렉토리를 마지막 커밋으로 되돌리고 새 / 변경된 파일을 삭제합니다.


git revert HEAD^다음에서 마지막 커밋으로 되돌리기 위해를 사용하여 커밋을 되돌릴 수 있습니다 . HEAD ^ 대신 ID를 사용하여 되돌릴 커밋을 지정할 수도 있습니다.


마지막 커밋 이후 로컬 파일 변경을 UNDO 하는 쉬운 방법 은 새 브랜치에 배치하는 것입니다.

git branch changes
git checkout changes
git add .
git commit

이렇게하면 새 분기에 변경 사항이 남습니다. 원래 브랜치로 돌아가서 마지막 커밋으로 돌아갑니다.

git checkout master

새 분기는 원래 분기를 엉망으로 만들 위험없이 변경 사항을 되 돌리는 다양한 방법을 연습 할 수있는 좋은 장소입니다.


마지막 커밋을 해제하려면 다음을 사용하십시오.

git reset HEAD~

나를 위해 매력처럼 작동합니다.

참고 URL : https://stackoverflow.com/questions/4965639/rollback-to-last-git-commit

반응형