git에서 인터랙티브rebase를 어떻게 사용합니까

4651 단어 webdevgit
몇 달 전에 나는 전방 개발자로서의 첫 번째 전공 업무를 시작했다.이것은 무섭고 자극적이다.그 동안 많은 것을 배웠고 많은 문제에 부딪혔지만 한 가지 반감이 들었습니다. 바로git rebase입니다.
이것은 내가 처음으로 어떤 능력으로git rebase를 사용하기 때문에, 나는 그것을 정상적으로 일하게 하기가 매우 어렵다.나는 내가 하루 종일git rebase를 공부한 것을 기억한다. 그러면 나는 매번 주소를 다시 설정해야 할 때마다 동료에게 도움을 청할 필요가 없다.
지금까지 배운 git rebase에 관한 모든 지식을 여러분과 함께 나누겠습니다.

git rebase란?


주소 재정립은 제출 서열을 새로운 기본 제출로 이동하거나 조합하는 과정입니다.병합과 유사하지만 두 명령 사이의 차이점은 베이스 주소를 재정의할 때 분기의 모든 변경 사항을 하나의 패치로 병합하고, 병합은 원본 분기에서 변경 사항을 가져와 목표 분기와 집적하는 것이다.

git rebase는 언제 사용합니까?


다음은 git rebase를 사용할 수 있는 몇 가지 용례입니다.나는 짧은 시간 내에 그것들을 상세하게 소개할 것이다.
  • 커밋 메시지 편집
  • 삭제 커밋
  • 통합 제출
  • 커밋 메시지 편집


    만약 당신이 최신 제출 메시지에 오류를 입력했다면, 가장 좋은 해결 방법은git commit --amend를 사용하는 것입니다.Git commit - amend 는 Git 명령으로 최근 제출을 수정할 수 있습니다. 우리는 이렇게 할 수 있습니다.
    git commit --amend -m “new commit message”
    
    그러나 여러 개의 제출 메시지나 네 번째 제출 메시지를 변경하려면 어떻게 해야 합니까?
    이것이 바로 git rebase가 역할을 발휘할 때다.간격을 다시 설정하면 단일 제출을 변경할 수 있습니다. 이를 위해 터미널git rebase -i HEAD~5에 다음 명령을 입력하십시오.
    i 옵션은 우리가 상호작용으로 기조를 재정비하고 있음을 나타낸다
    HEAD~5는 처리할 제출 수를 나타냅니다.이런 상황에서, 이것은 내가 한 마지막 다섯 가지 약속을 처리할 것을 의미한다

    그림에서 보듯이 git rebase -i HEAD~5를 실행한 후에 나는 이 특정 저장소에서 마지막으로 제출한 다섯 번의 목록을 얻었다.
    현재, 만약 우리가 세 번째 메시지와 두 번째 제출 메시지를 편집하려면, 우리는reword 명령으로pick 명령을 바꾸고 파일을 저장하고 종료해야 한다.
    편집기에서 명령 목록을 얻을 수 있으며, 기본 주소를 재정비할 때 이 명령을 사용할 수 있습니다.기본 옵션으로 [선택]을 선택합니다.pickreword로 바꾸면 해당 제출된 제출 메시지를 편집할 수 있습니다.

    저장하고 종료하면 제출 메시지를 편집할 수 있는 다른 편집기로 가져옵니다.만약 우리가 다시 운행한다면git rebase -i HEAD~5, 이것이 바로 결과이다.

    기본 주소를 다시 정할 때, 제출을 편집할 수 있는 두 가지 방법이 있다는 것을 알 수 있습니다.'편집' 명령을 사용하면 제출 메시지와 제출 내용을 변경할 수 있지만, '다시 쓰기' 명령을 사용하면 제출 메시지만 변경할 수 있습니다

    제출 삭제


    지점에서 필요하지 않은 제출이 있음을 발견하면 특히 유용합니다.인터랙티브 리셋을 통해 지점에서 삭제할 제출을 선택하고 삭제할 수 있습니다.
    제출 메시지를 편집하는 것과 같이 삭제할 제출에 pick 명령으로 drop 명령을 교체해야 합니다.

    편집기를 저장하고 종료하면 변경 사항을 적용하고 제출 및 제출에 대한 모든 변경 사항을 삭제합니다.
    커밋이 삭제되었기 때문에 명령git rebase -i HEAD~5을 실행하지 않고 실행git rebase -i HEAD~4합니다.

    보시다시피 우리는 세 번째 제출을 삭제했습니다.
    drop을 사용할 때 중요한 변경 사항을 잃어버리지 않도록 조심해야 합니다.

    한데 결합하다


    다음은 squash 명령이다.squash 명령은 두 개 이상의 제출을 하나의 제출로 조합하고 새로운 제출 정보를 작성해서 새로운 제출을 설명할 수 있도록 합니다.
    우리는 pick 명령으로 squash 명령을 대체할 것입니다. 이 명령은 이전 명령에 통합된 제출에 사용됩니다.

    일단 우리가 저장하고 종료하면 두 번째와 네 번째 제출은 첫 번째 제출에 통합됩니다.제출을 압축할 때, 최신 제출을 오래된 제출에 통합합니다. 이것이 바로 우리의 제출이 아래에서 위로 압축된다는 것을 기억하는 것입니다.

    압출 명령을 사용할 때, 압출할 제출 메시지를 편집할 수 있습니다.제출 메시지 하나만 사용하려면, 원하지 않는 제출 메시지에 대한 설명을 계속하고, 사용할 제출 메시지를 보류할 수 있습니다.fixup 명령의 작업 원리는 squash 명령과 유사하다. 유일한 차이점은 fixup 명령은 최근에 제출한 제출 메시지를 포기하고 통합된 제출 메시지의 제출 메시지를 보존한다는 것이다.

    다음 단계


    이제 커밋을 원격 분기로 푸시합니다.기억해야 할 것은git rebase를 사용하여 지점의 역사를 다시 썼기 때문에 지점이 발표되었을 때 사용해야 합니다
    git push --force origin name-of-the-branch-you-are-working-on
    
    강제 푸시를 사용하면 해당 지점에서 일하는 다른 모든 사람에게 문제를 가져올 수 있기 때문에 특정 지점에서 유일한 직원이 아니면 계속하기 전에 해당 지점에서 일하는 동료와 확인하는 것이 안전합니다.

    결론


    그렇지!본고는git에서 상호작용적인rebase에 대한 모든 지식을 포함하지는 않지만, 학습을 시작하기에 충분할 것입니다.
    만약 당신이 유용하다고 생각한다면 댓글을 남기고 친구와 공유하세요. 만약git나 전단과 관련된 모든 화제를 보도하고 싶다면 저에게 알려주세요.
    안전에 주의하세요. 읽어 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기