Git의 다른 분기로 커밋 이동

Abdul Jabbar 2023년1월30일
  1. Git에서 이동에 대한 커밋 수 계산
  2. Git의 새 분기로 커밋 이동
  3. Git의 기존 분기로 커밋 이동
Git의 다른 분기로 커밋 이동

Git은 현대 소프트웨어 세계에서 매우 유용하고 강력한 도구입니다. Git에서 분기 및 커밋을 통해 많은 유형의 파일과 코드를 저장할 수 있습니다. 분기는 사용 중인 버전 관리 시스템에 따라 다른 개념입니다. 많은 개발자들은 효율성 때문에 가장 선호되는 버전 관리 시스템이라고 가정합니다.

대부분의 경우 어떤 작업을 완료하고 특정 브랜치에 커밋한 후 실수로 잘못된 브랜치에 커밋했음을 깨닫고 다른 브랜치에서 다시 커밋하고 싶을 때 이러한 상황에 직면합니다. 여기서 Git은 우리를 구출하기 위해 왔으며, 커밋을 다른 기존 브랜치나 새 브랜치로 이동할 수 있습니다.

이 가이드는 커밋을 새 브랜치나 기존 브랜치로 옮기는 방법에 대한 기본적인 이해를 제공합니다. 또한 git branch 명령으로 새 분기를 만들고 git reset 명령으로 커밋을 이동하고 git merge 명령으로 변경 사항을 다시 주 분기로 병합하는 방법에 대해 논의합니다.

Git에서 이동에 대한 커밋 수 계산

전체 프로세스를 시작하기 전에 상황을 판단해야 합니다. 변경할 분기를 체크아웃했다고 가정해 보겠습니다. 우리는 이를 위해 역사를 볼 필요가 있습니다.

다음 명령을 사용하여 이동할 커밋 수를 계산합니다.

git log

실행 후 HEADorigin/HEAD의 헤드에 있는 두 개의 커밋이며 다른 분기로 이동해야 하는 두 개의 원하는 커밋임을 알 수 있습니다. 다음은 이러한 커밋을 새 분기 또는 기존 분기로 이동하는 방법을 다루는 나머지 단계입니다.

Git의 새 분기로 커밋 이동

아래에 언급된 단계는 최신 커밋을 새 분기로 이동하는 방법을 보여줍니다.

  • 새 브랜치 생성
    git branch feature/new branch
    

    이 명령은 master(current) 분기의 모든 커밋을 포함하는 새 분기를 만듭니다.

  • 현재 분기를 두 커밋 뒤로 이동
    git reset --keep HEAD~2
    
  • 새로운 지점을 확인하세요
    git checkout feature/new branch
    

이를 실행함으로써 두 개의 최신 커밋이 master(현재 분기)에서 제거되고 feature/new branch라는 새 분기에 추가되었습니다.

Git의 기존 분기로 커밋 이동

아래에 언급된 단계는 최신 커밋을 기존 분기로 이동하는 방법을 보여줍니다. 기능 브랜치에서 작업했지만 실수로 잘못된 브랜치에서 커밋을 시작했다면 유용할 것입니다. 제거하려는 커밋이 있는 현재 분기가 master라고 가정해 보겠습니다.

  • 기존 브랜치 체크아웃
    git checkout feature/existing branch
    

    git checkout 명령은 작업 디렉토리에서만 작업하는 것으로 제한되지 않습니다. 또한 HEAD 참조 포인터를 분기의 참조 지점으로 이동하는 데 사용할 수도 있습니다.

  • 마스터 브랜치 병합
    git merge master
    

    git merge 명령을 사용하여 분기를 현재 분기에 병합할 수도 있지만 현재 분기가 병합 중인 분기에 이미 병합된 경우에만 가능합니다.

  • 마스터 브랜치 확인
    git checkout master
    

    checkout master 명령은 최신 버전의 코드를 풀다운하고 master라는 새 분기를 만듭니다.

  • 현재 분기를 두 커밋 뒤로 이동:
    git reset --keep HEAD~2
    

    --keep 옵션은 인덱스 항목을 재설정하고 커밋과 HEAD 간에 다른 작업 트리의 파일을 업데이트합니다. 커밋 시 파일이 다르고 HEAD에 로컬 변경 사항이 있는 경우 재설정이 종료됩니다. 따라서 최신 두 커밋이 master에서 제거되고 기존 분기에 추가되었습니다.

작가: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

관련 문장 - Git Commit

관련 문장 - Git Branch