Git 커밋을 여러 커밋으로 분할하는 방법은 무엇입니까?

3379 단어 gittutorial
때때로 개발자는 git 커밋을 여러 커밋으로 분할하려고 할 수 있습니다. 커밋을 분할하는 이유는 일반적으로 git 기록을 더 읽기 쉽게 만들거나 커밋을 재정렬하여 충돌을 피하기 위한 것입니다. 운 좋게도 이 작업은 reset 명령이나 대화식 rebase를 사용하여 가능합니다.

해보자 😎.



준비



가장 먼저 할 일은 작업 디렉토리에 변경 사항이 없는지 확인하는 것입니다.

이것은 git status 명령을 사용하여 수행할 수 있습니다.

터미널에서 이 명령을 실행할 때 파일이 표시되지 않아야 합니다. 파일이 표시되면 변경 사항을 커밋하거나 삭제해야 합니다.

가장 최근 커밋을 분할하는 방법은 무엇입니까?



가장 최근 커밋을 분할하려면 git reset 명령을 사용하여 최신 커밋을 되돌리십시오.

git reset HEAD~


HEAD refers to the current branch.
HEAD~ refers to the latest commit.



그런 다음 원하는 파일과 메시지로 다른 커밋을 생성하고 원격으로 푸시합니다.

그러나 분할하려는 커밋이 최신 커밋이 아닌 경우에는 어떻게 해야 합니까?

쉬운. 대화식 리베이스를 사용하십시오.



커밋을 더 멀리 분할하는 방법은 무엇입니까?



커밋을 더 뒤로 분할하려면 대화형 rebase로 git 기록을 다시 작성해야 합니다.

1 - 먼저 git reflog 명령으로 커밋 해시를 찾습니다.

2 - 그런 다음 커밋의 해시와 함께 git rebase 명령을 사용합니다.

git rebase -i HASH


3 - 리베이스 편집 화면에서 pickedit로 분할하고 교체할 커밋이 있는 줄을 찾습니다.

4 - 리베이스 편집 화면을 저장하고 종료합니다.

5 - 다음을 사용하여 상태를 이전 커밋으로 재설정합니다.

git reset HEAD~


6 - 원하는 파일과 메시지로 다른 커밋을 만듭니다.

7 - 다음 명령을 입력하여 리베이스를 완료합니다.

git rebase --continue


If something goes wrong, you can abort the rebase and start over by using the git rebase --abort command.



결론



보시다시피 커밋을 여러 커밋으로 나누는 것은 쉽습니다.

그러나 이미 리모컨으로 푸시한 경우 git push --force 명령을 사용해야 합니다.



다음은 여러분이 즐길 수 있도록 작성한 다른 Git 자습서입니다.
  • How to push an empty git commit?
  • How to fix "git pre-receive hook declined"?
  • Delete a remote or local tag in Git
  • The complete guide on Git tags
  • How to uncommit your changes in git?
  • 좋은 웹페이지 즐겨찾기