1. 이야기의 시작
원격 마스터 브랜치 아래의 코드가 실수로 정크 코드와 함께 제출되었거나 프로젝트가 삭제되었네요. 이전 버전으로 롤백하고 삭제하고 싶었습니다. 커밋 로그. 무엇을 해야 할까요? 시나리오는 사진과 같습니다.
시나리오는 매우 간단합니다. 상사가 파일을 업로드했는데 제가 삭제했습니다. 파일을 다시 푸시하는 방법이 있지만 그 사람이 사진의 댓글을 보는 것을 원하지 않습니다. (ps: 이렇게 하면 해고되지 않습니다.) 위 시나리오를 구현하는 코드는 다음과 같습니다.
vim A.txt
git add .
git commit -a -m "add A.txt"
git push
rm A.txt
git commit -a -m "상사의 내용을 삭제했습니다."
git push
— ——— –분할선————–
헷갈리면 어떻게 해야 하나요? 무엇을 해야 할까요? 무엇을 해야 할까요?
리모컨에 푸시된 제출물은 기본적으로 수정할 수 없지만 수정해야 합니다.
git push -f
2.
2.1 작업 공간, 준비 영역, 로컬 저장소 및 원격 저장소
사진 없음 78. . .
》》Workspace: 우리가 운영하는 디렉토리입니다.
》》Staging Area: 운영 디렉토리의 스냅샷
》》 로컬 저장소: Git의 핵심은 모든 사람이 중앙 창고입니다. 즉, Git 배포의 이점은 SVN과 같은 중앙 집중식
》》 원격 버전 저장소와 자연스럽게 비교됩니다. Github와 같은 중앙 창고는 공유를 달성할 수 있습니다.
자주 사용하는 연산도 그림에 나와 있으니 자명합니다.
2.2 실전 해결
톡은 싸다, 코드나 돈 보여줘~ 코드는 다음과 같다:
git log
git Reset --soft ${commit-id}
git stash
git push -f
자세한 내용은 다음과 같습니다.
1행: git log 커밋 기록을 보고 롤백하려는 버전을 찾습니다. 내역은 다음과 같습니다.
commit 84686b426c3a8a3d569ae56b6788278c10b27e5b
작성자: JeffLi1993
날짜: 4월 8일 금요일 19:11:32 2016 +0800
상사의 항목을 삭제했습니다
commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
저자: 제프 리1993
날짜: 2016년 4월 8일 금요일 19:05:23 +0800
A.txt 추가
반환하고 싶은 버전은 다음과 같습니다: 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
2행: git Reset –soft 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
특정 버전으로 철회하기 전에 이전 수정 사항은 해당 버전으로 반환됩니다. 대기실(아름다운 사진을 보는 법을 모르겠어요~). 소프트 매개변수와 하드 매개변수의 차이점은 하드 수정 기록이 손실되는 반면 소프트 매개변수는 수정 기록을 유지한다는 것입니다.
3행: 안전상의 이유로 임시 저장됩니다.
4행: git push -f
로컬 마스터를 원격 저장소로 푸시하고 -f는 강제로 덮어씁니다.
3. 요약
git Reset이 특정 버전으로 롤백됨
git push -f 강제로 push 덮어쓰기