2017-05-18 1 views
0

최근에 기존 코드를 불필요하게 변경하고 실수로 컨트롤러 (레일 사용)를 삭제했습니다. 이 시점에서 나는 단지 작은 변화를 만들어야 만했기 때문에 나는 master 브랜치에 있었다. 그래서 나는 나의 저장소에 변경 사항을 저지른 것이다.git을 통해 몇 가지 커밋 재설정

이것을 되돌리려면 git reset --hard HEAD를 사용하여 이전 코드로 돌아가십시오. 지금 내가하고 싶은 것은이 버전보다 2 커밋을 제거하고 방금 전에 이동 한 헤드에서만 작업하기를 원합니다. 어떻게해야합니까?

+1

가능한 중복 (http://stackoverflow.com/questions/1338728/delete-commits-from-a-branch-in-git가) – 1615903

답변

1

HEAD에서 커밋을 제거 할 수 있습니다. push force

가 [망할 놈의 지점에서 커밋을 삭제]의
+1

감사합니다. :) – Solias

+0

다행스럽게도 도움이된다. :) – Zooly

+1

'-f' (또는 이와 동등한'--force')보다는'--force-with-lease'를 사용하여 누군가가 저지른 커밋을 덮어 쓰지 않도록하는 것이 좋습니다 마지막으로 가져온 이후로 푸시했을 수 있습니다. –

0

이렇게하는 방법에는 여러 가지가 있습니다. 내게 가장 좋은 방법은 다음과 같습니다.

git rebase -i HEAD~3 

rebase-to-do 목록 파일이 열립니다. 삭제할 커밋을 제거하십시오. 그런 다음 파일을 저장하고 닫습니다.

+0

이 또한 잘 작동

git push origin HEAD -f 
. 방금 알아 냈어. 나는이 버전을 두 버전 사이에서 패치를 제거하고자하는 상황에 사용할 것입니다. 그러나 HEAD에 힘을 가하는 것은 내가 필요로했던 것을하는 것처럼 보였다. 고마워요. – Solias

관련 문제