>  기사  >  개발 도구  >  git에서 기록을 수정하는 방법

git에서 기록을 수정하는 방법

WBOY
WBOY원래의
2022-01-14 14:19:279009검색

방법: 1. "git commit --amend" 명령을 사용하여 기록 레코드를 한 번 수정합니다. 2. "git rebase -i 지정 커밋 번호" 명령을 사용하여 여러 기록 레코드를 수정합니다. Branch --filer" "명령 수정 범위" 명령은 기록을 다시 작성합니다.

git에서 기록을 수정하는 방법

이 문서의 운영 환경: Windows 10 시스템, Git 버전 2.30.0, Dell G3 컴퓨터.

git의 기록을 수정하는 방법

주니어 플레이어 git amend

제출 후 비활성화된 경우 git commit --amend를 사용하여 이전 제출을 수정할 수 있습니다. 이 명령이 실행된 후 현재 브랜치에서 마지막 커밋을 제거하고 작업공간을 제출을 위해 마지막으로 준비되었던 상태로 복원한 다음(마지막 커밋 후 변경 사항을 혼합하면서) You go에 대한 vim 인터페이스를 표시합니다. 마지막 커밋 정보를 수정합니다. vim에 저장하면 현재의 모든 수정 사항이 새로운 제출 정보와 함께 제출됩니다.

이 명령은 마지막 커밋만 수정할 수 있습니다. 하나의 명령은 다음 일련의 작업을 실행하는 것과 같습니다.

    $ORIG_HEAD=`git show`#保存当前的这次提交的 commit 号
    $git reset --soft HEAD^#回到最后一次提交准备提交前的状态
    $...#做一些操作和修改
    $git commit -c $ORIG_HEAD#表示用最后一次提交的提交信息来做为提交信息,不过会调出编辑器界面

중간 플레이어 git rebase

이전 git commit --amend는 마지막 커밋만 수정할 수 있지만, 변덕스럽게도 손이 비활성화되면 이 명령은 우리를 구할 수 없습니다. 이때 우리는 견딜 수 없는 과거 사건을 수정하는 데 도움이 되는 git rebase -i의 킬러 도구를 사용해야 합니다.

실제로 git rebase -i는 기록 레코드를 수정하는 데 특별히 사용되는 명령이 아니라 대화식(즉, 하나씩)으로 리베이스 작업을 수행할 수 있게 해주는 명령이지만 이 명령을 사용하여 이를 달성할 수 있습니다. 커밋 히스토리에.

이 명령을 사용하는 방법은 git rebase -i 입니다. 예를 들어 git rebase -i HEAD~3을 사용하여 이 제출, 마지막 제출, 이전 제출 등 세 가지 제출을 수정할 수 있습니다. .

git에서 기록을 수정하는 방법

그림에 표시된 대로 이 세 가지 변경 사항을 제출하고 git rebase -i HEAD~3을 입력하면 다음 인터페이스가 나타납니다.

git에서 기록을 수정하는 방법

이것은 vim 편집기의 인터페이스입니다. 이 스크립트를 편집할 때 사용할 수 있는 명령은 아래 설명에 있는 6개의 명령입니다. 현재 편집 중인 페이지를 종료한 후 git은 이 스크립트에 따라 제출물에 대해 해당 작업을 하나씩 수행합니다(가장 빠른 제출부터 시작).

커밋 정보만 수정하려면 모든 선택을 r로 변경한 다음 wq save로 변경하면 git에서 가장 빠른 커밋 정보부터 하나씩 수정할 수 있습니다.

나머지 명령 중 e는 해당 제출물을 수정할 때 vim 편집기를 팝업합니다. 이때 HEAD 포인터는 이 제출물을 가리킵니다. 이때 git commit --amend를 사용하여 이에 대한 다양한 수정을 할 수 있습니다. submit을 실행한 후 git rebase --continue를 실행하면 s는 해당 제출을 수정할 때 이 제출과 해당 상위 제출을 하나의 제출로 병합합니다. f는 s와 유사하지만 현재 제출의 정보를 무시하고 직접적으로 상위 제출 정보를 사용하려면 x 뒤에 명령을 입력한 다음 HEAD가 이 제출을 가리킬 때 이를 실행해야 합니다. 이러한 명령을 사용하여 제출물을 재정렬하고 제출물을 분할할 수도 있습니다.

최고의 킬러 git filter-branch

N번 제출한 후 갑자기 제출한 이메일 주소가 모두 잘못되었음을 발견했다고 가정해 보겠습니다(╯°□°)╯︵ ┻━┻, 이때, 이전에 사용하면 언급된 명령이 완료되기 전에 소진될 수 있습니다. 이때 git filter-branch를 사용하여 각 제출에 대해 사전 설정 작업을 일괄적으로 수행할 수 있습니다.

git 필터. -branch 명령에서 사용되는 기본 형식은 git filter-branch -- 'Command' 입니다. 예를 들어 --msg -filter와 같이 필터에 따라 다른 입력과 출력이 제공됩니다. 커밋 정보 수정을 의미하고, 원래 커밋 정보를 표준 입력에서 읽고, 새 커밋 정보를 표준 출력으로 출력합니다. --tree-filter는 파일 목록 수정 등을 의미합니다. 마지막으로 다시 쓰기 범위가 있습니다. 예를 들어, git filter-.branch --env-filter 'GIT_AUTHOR_EMAIL=john@example.com 내보내기 GIT_AUTHOR_EMAIL' HEAD를 사용하면 명령을 호출하기 전에 시도할 분기를 만든 후 수행하는 것이 좋습니다. 수정하려는 브랜치의 작업

추천 학습: "Git Tutorial"

위 내용은 git에서 기록을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.