git 가 제출 한 기록 의 메 일 을 어떻게 수정 합 니까?

때때로 회사 에서 제출 한 코드 는 반드시 회사 메 일 을 사용 해 야 하 는데, 당신 은 조작 을 잘못 해서 자신의 개인 메 일 을 직접 제출 합 니 다. 이때 당신 은 이러한 요 구 를 만 날 수 있 습 니 다. git 가 제출 한 메 일 을 어떻게 수정 합 니까?
그리고 이 수 요 는 초보 자 에 게 반나절 이 걸 려 야 수정 과정 을 이해 할 수 있 습 니 다. 정말 바보 같 습 니 다. 그래서 저 는 상세 한 문 서 를 만들어 서 자신 과 당신 이 이 절 차 를 잘 알 도록 도와 드 리 겠 습 니 다.특히 변 기 를 이해 해 야 한다. 그것 은 명령 이 실행 되면 완성 되 는 것 이 아니 라 일련의 명령 의 조합 이다.
기 초 를 바꾸다
git rebase -i 

실행 후 최근 제출 기록 을 엽 니 다. 물론 위의 명령 은 어떤 기록 을 지정 할 수 있 습 니 다. 명령 은:
git rebase -i "your commit id"

sourcetree 사용자 에 게 commt id 는 SHA - 1 입 니 다. 제출 기록 을 오른쪽 클릭 하고 메뉴 'SHA - 1 클립보드 복사' 를 선택 할 수 있 습 니 다. 다음 그림:
변 기 rebase 명령 이 실 행 된 후 다음 과 같은 내용 을 인쇄 합 니 다.
pick bd81df5   API

# Rebase abcb9d0..bd81df5 onto abcb9d0 (1 command)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

초보 자 들 은 어 리 석 은 표정 을 짓 는 다. 잘못 이 아니 라 rebase 과정 에서 pick 을 edit 로 바 꿔 야 한다. 다음 과 같다.
edit bd81df5   API

# Rebase abcb9d0..bd81df5 onto abcb9d0 (1 command)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

변경 완료 후 vi 편집기 저장 및 종료: :wq그리고 이런 메 시 지 를 인쇄 합 니 다.
chengmingdeMacBook-Pro:server cmlanche$ git rebase -i "abcb9d0d1e99cdad25d8d08119e494436b000e59"
Stopped at bd81df5...    API
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
chengmingdeMacBook-Pro:server cmlanche$ 

amend 영어 단 어 를 먼저 보 여 드 리 겠 습 니 다.
위의 정 보 는 amend, 즉 이 제출 을 수정 하려 면 사용 하 라 고 했 습 니 다.
git commit --amend

만약 당신 이 이번 수정 에 만족 한다 면, 다음 과 같은 명령 으로 이번 변 기 를 끝 냅 니 다.
git rebase --continue

계 정 메 일 정보 초기 화
당연히 수정 해 야 합 니 다. 그러면 다음 명령 을 실행 하고 제출 한 계 정 정 정 보 를 리 셋 합 니 다.
git commit --amend --author="cmlanche <[email protected]>" --no-edit

동료, 당신 의 sourcetree 에 주의 하 세 요. 새로운 상황 이 발생 했 습 니 다!
우 리 는 새로운 제출 을 볼 수 있 습 니 다. 그리고 메 일 계 정 이 모두 수정 되 었 습 니 다. 만약 에 삭제 --no-edit 하면 commt message, 즉 그림 속 의 'API 업데이트' 를 수정 할 수 있 습 니 다. 밤 을 들 어 보 세 요. 저 는 amend 로 이번 변 기 를 계속 수정 할 수 있 습 니 다.
git commit --amend --author="cmlanche <[email protected]>"

vi 편집기 종료 저장, sourcetree 가 어떻게 되 었 는 지 보기:
정말 완벽 합 니 다. 다음은 합병 입 니 다. 변 기 를 물 러 나 는 것 입 니 다.
변경 기 종료
git rebase --continue

콘 솔 에서 위 명령 과 같이 변 기 를 종료 하 라 고 인쇄 합 니 다. 우 리 는 변 기 를 종료 하 는 것 을 보 았 습 니 다. 즉, 최신 수정 을 사용 하 는 것 입 니 다. 한 갈래 만 있 습 니 다.
chengmingdeMacBook-Pro:server cmlanche$ git rebase --continue
Successfully rebased and updated refs/heads/bulma.

마지막 으로 정리 해 주세요.
변 기 는 정말 유용 합 니 다. 그 는 명령 으로 해결 한 것 이 아니 라 하나의 과정 입 니 다. 마치 중간 에 입력 흐름 을 열 었 고 마지막 에 사용 하면 입력 흐름 을 닫 아야 하 는 것 과 같 습 니 다.
변 기 를 통 해 당신 은 정 보 를 제출 하 는 임 의적 인 재 수정 을 쉽게 실현 할 수 있 습 니 다!
다음으로 전송:https://juejin.im/post/5cd8f73df265da038932b2fc

좋은 웹페이지 즐겨찾기