답변:
git reset --hard HEAD~1
git push -f <remote> <branch>
(예 : 푸시 git push -f origin bugfix/bug123
)
마지막 커밋을 취소하고 업데이트 된 기록을 원격으로 푸시합니다. -f
리모컨에서 업스트림 기록을 교체 하고 있기 때문에 를 전달해야합니다 .
git log --decorate --oneline
HEAD가 가리키는 곳을 찾는 데 사용하십시오 .
git reset HEAD~1
변경 사항이 사라지지 않게하려면 (무단계 변경). 변경, 커밋 및 다시 푸시git push -f [origin] [branch]
일반적으로 다음을 사용하여 "역"커밋을 만듭니다.
git revert 364705c
그런 다음 평소처럼 리모컨으로 보냅니다.
git push
커밋은 삭제되지 않습니다. 추가 커밋은 첫 번째 커밋이 수행 한 모든 작업을 취소합니다. 특히 변경 사항이 이미 전파 된 경우 실제로 안전하지 않은 다른 모든 것.
git reset
변경 사항을 여전히 서버로 푸시하지 않은 경우에만 승인됩니다.
우선, 휴식을 취하십시오.
"우리가 통제 할 수있는 것은 없습니다. 우리의 통제는 단순한 환상입니다. "
실수로 코드를 (으)로 푸시했습니다 remote-master
. 이것은 괜찮을 것입니다.
1. 처음에는 SHA-1
반환하려는 커밋 값을 가져 옵니다 (예 : 마스터 브랜치에 커밋). 이것을 실행하십시오 :
git log
각 커밋과 함께 문자열과 같은 'f650a9e398ad9ca606b25513bd4af9fe ...'무리가 표시됩니다. 되돌아 가려는 커밋에서 해당 번호를 복사합니다 .
2. 이제 아래 명령을 입력하십시오 :
git reset --hard your_that_copied_string_but_without_quote_mark
"HEAD is now at"과 같은 메시지가 나타납니다. 당신은 분명하다. 방금 수행 한 작업은 해당 변경 사항을 로컬에 반영하는 것입니다.
3. 아래 명령을 입력하십시오 :
git push -f
당신은 다음과 같이 보일 것입니다
"경고 : push.default가 설정되어 있지 않습니다. 암시 적 값이 ..... ...에서 변경되었습니다. 총 0 (델타 0), 재사용 된 0 (델타 0) ... ... your_branch_name-> 마스터 (강제 업데이트) "
자, 당신은 모두 분명합니다. "git log"로 마스터를 다시 확인하십시오. fixed_destination_commit이 목록의 맨 위에 있어야합니다.
당신은 환영합니다 (사전;))
최신 정보:
이제이 모든 것이 시작되기 전에 변경 한 내용이 사라졌습니다. 이러한 노력을 다시 되돌리려면 가능할 것입니다. git reflog 및 git cherry-pick 명령 덕분 입니다.
대화식 리베이스를 수행 할 수 있습니다.
git rebase -i <commit>
기본 편집기가 나타납니다. 제거하려는 커밋이 포함 된 행을 삭제하여 해당 커밋을 삭제하십시오.
물론이 변경 사항을 적용하려면 원격 저장소에 액세스해야합니다.
이 질문을 참조하십시오 : 힘내 : 저장소에서 선택된 커밋 제거
git reset --hard <the-sha-you-want-to-return-to>
.