원격 커밋을 취소하는 방법을 묻는 질문이 있습니다. 유일한 방법은 로컬 수정을 한 다음 강제 푸시하는 것입니다. 그리고 많은 사람들은 강제 푸시가 필요하지 않거나 개인이 공개하지 않은 경우를 제외하면 매우 나쁜 습관이라고 언급했습니다. 프로젝트 또는 소규모 팀 프로젝트(낮은 통신 비용)만 가능합니다.
다른 답변에 대한 귀하의 의견을 읽어보니 제출 기록을 정리하고 싶은 것 같아서 다른 VCS에 비해 git이 확실히 이 작업에 매우 능숙합니다. git rebase 명령을 사용하여 기록을 재구성하고, 재정렬하고, 병합하고, 일부 커밋을 분할할 수 있습니다. 즉, 소위 더티 기록을 정리하는 데 충분합니다. 전체 기록을 확실하게 변경하고 싶다면 git fileter-branch 명령도 사용할 수 있는데, 이는 매우 유연하고 탐색해 볼 가치가 있습니다.
제 제출 과정에 대해 이야기해 보겠습니다. 저는 보통 목표에 도달할 때까지 파일을 수정한 다음 제출을 시작합니다. 이때 저는 직접 제출만 하는 것이 아니라 vim과 vim-fugitive 플러그인을 사용합니다. . , Diff 모드에서 작업 공간과 준비 영역을 연 다음 준비 영역에서 수정 사항을 단계별로 재현하고 적절한 시간에 제출합니다. 전체 수정을 완료했기 때문에 각 수정에서 누가 첫 번째와 마지막에 가야 하는지 잘 알고 있으므로 상대적으로 깨끗하고 명확하며 "원자적"으로 만들 수 있습니다(즉, 하나의 커밋은 혼합하는 것이 아니라 하나의 특정 수정만 수행합니다). 여러 수정) ) 다른 사람의 코드 검토를 용이하게 합니다.
——————
마지막으로 SF는 국내 포럼 모델과 다르다는 점, 질의응답 방식이 아니라는 점을 말씀드리고 싶습니다. 질문에 추가해야 한다고 생각되면 질문을 직접 편집하여 모든 팔로워에게 알림을 보내세요. 다른 답변의 댓글에 질문만 업데이트하고 추가하는 경우 누구에게도 알림이 전송되지 않습니다.
아니요,
git reset --hard
만 그리고git push -f
만요.원격 커밋을 취소하는 방법을 묻는 질문이 있습니다. 유일한 방법은 로컬 수정을 한 다음 강제 푸시하는 것입니다. 그리고 많은 사람들은 강제 푸시가 필요하지 않거나 개인이 공개하지 않은 경우를 제외하면 매우 나쁜 습관이라고 언급했습니다. 프로젝트 또는 소규모 팀 프로젝트(낮은 통신 비용)만 가능합니다.
다른 답변에 대한 귀하의 의견을 읽어보니 제출 기록을 정리하고 싶은 것 같아서 다른 VCS에 비해 git이 확실히 이 작업에 매우 능숙합니다.
git rebase
명령을 사용하여 기록을 재구성하고, 재정렬하고, 병합하고, 일부 커밋을 분할할 수 있습니다. 즉, 소위 더티 기록을 정리하는 데 충분합니다. 전체 기록을 확실하게 변경하고 싶다면git fileter-branch
명령도 사용할 수 있는데, 이는 매우 유연하고 탐색해 볼 가치가 있습니다.제 제출 과정에 대해 이야기해 보겠습니다. 저는 보통 목표에 도달할 때까지 파일을 수정한 다음 제출을 시작합니다. 이때 저는 직접 제출만 하는 것이 아니라 vim과 vim-fugitive 플러그인을 사용합니다. . , Diff 모드에서 작업 공간과 준비 영역을 연 다음 준비 영역에서 수정 사항을 단계별로 재현하고 적절한 시간에 제출합니다. 전체 수정을 완료했기 때문에 각 수정에서 누가 첫 번째와 마지막에 가야 하는지 잘 알고 있으므로 상대적으로 깨끗하고 명확하며 "원자적"으로 만들 수 있습니다(즉, 하나의 커밋은 혼합하는 것이 아니라 하나의 특정 수정만 수행합니다). 여러 수정) ) 다른 사람의 코드 검토를 용이하게 합니다.
——————
마지막으로 SF는 국내 포럼 모델과 다르다는 점, 질의응답 방식이 아니라는 점을 말씀드리고 싶습니다. 질문에 추가해야 한다고 생각되면 질문을 직접 편집하여 모든 팔로워에게 알림을 보내세요. 다른 답변의 댓글에 질문만 업데이트하고 추가하는 경우 누구에게도 알림이 전송되지 않습니다.
인터넷에 올리는 것은 모두 역사입니다. 기록을 현지에서 엉망으로 만들면 인터넷에 역사가 되고 존중되어야 합니다.
오랜 고민 끝에 업로드 후에는 변화가 없어야 한다는 점을 말씀드리고 싶습니다.
내 접근 방식은 로컬에서 올바른 버전으로 롤백한 다음 한 번 푸시하는 것입니다. 이전 커밋 기록을 제거하려면 git rebase를 사용해야 하는 것 같습니다
참조: Github에 잘못된 커밋을 제출한 후 수행할 작업