Git에서 로컬 및 원격으로 분기를 삭제하는 방법

주요 시사점

  • 브랜치 삭제는 일반적인 Git 워크플로우에서 중요한 부분입니다.
  • “git Branch -d” 명령을 사용하여 로컬 브랜치를 삭제할 수 있습니다. [branchname]”, 그러나 병합되지 않은 변경 사항에는 주의하세요.
  • GitHub Desktop, GitKraken, Tower 및 Bitbucket과 같은 다양한 도구에는 분기를 삭제하는 고유한 방법이 있으므로 각 도구의 특정 프로세스를 숙지하세요.

Git의 브랜치는 매우 가벼워 필요할 때마다 쉽게 생성할 수 있습니다. 그러나 더 이상 필요하지 않은 남은 가지로 끝나는 것도 쉽습니다. 그렇다면 지점 삭제에는 무엇이 포함됩니까?

지점을 삭제하는 이유는 무엇입니까?

첫째, git 브랜치를 사용하여 프로젝트를 구성하는 방법을 아직 배우고 있다면 브랜치를 만든 다음 필요하지 않다고 결정할 가능성이 꽤 높습니다. 분기는 가벼운 작업이므로 괜찮습니다. 매우 빠르고 디스크 공간을 효율적으로 사용합니다.

결과적으로 많은 Git 개발 워크플로는 매우 작거나 짧은 작업에도 분기를 권장합니다. 예를 들어 일반적인 전략은 모든 버그 수정에 대해 별도의 분기를 만드는 것입니다.

브랜치를 삭제하는 것은 브랜치를 생성하는 것만큼이나 일상적인 작업 흐름의 일부여야 합니다.

분기가 있는 샘플 저장소

아래 예는 다음 구조의 샘플 저장소를 나타냅니다.

저장소에는 main과 dev라는 두 개의 분기가 있습니다. 이러한 각 로컬 분기는 원격 서버(원본)에 해당 업스트림 분기가 있는 추적 분기입니다.

브랜치를 추적하는 것은 쉽기 때문에 명령줄에서 git 브랜치를 나열하거나 선호하는 클라이언트에서 보는 방법을 알고 있어야 합니다.

명령줄을 사용하여 분기 삭제

분기 삭제를 위한 기본 명령 구문은 다음과 같습니다.

 git branch (-d | -D) [-r] <branchname>... 

지역 지점을 삭제하는 방법

가장 간단한 명령 형식은 모든 변경 사항이 병합된 경우 로컬 분기를 삭제합니다.

 git branch -d dev 

문제가 해결되면 다음과 같은 확인 메시지가 표시됩니다.

  Linux에 Qogir GTK 테마를 설치하는 방법

현재 활성화된 분기는 삭제할 수 없습니다. 그렇게 하려고 하면 다음과 같은 메시지가 표시됩니다.

병합되지 않고 푸시되지 않은 변경 사항이 있는 로컬 브랜치를 삭제하면 해당 변경 사항이 손실됩니다. 따라서 git은 기본적으로 해당 브랜치 삭제를 거부합니다. 이 예에서 dev는 원격 브랜치에 푸시되지 않은 변경 사항을 병합 해제했습니다.

오류 메시지에서 알 수 있듯이 -D 플래그를 사용하여 강제로 삭제할 수 있습니다.

해당 원격 분기가 최신 상태이면 로컬 추적 분기가 병합 취소되었더라도 삭제할 수 있습니다. Git은 여전히 ​​경고를 표시하므로 무슨 일이 일어났는지 알 수 있습니다.

원격 지점을 삭제하는 방법

원격 지점을 삭제하는 것은 상당히 다릅니다. 삭제하려면 -d 플래그와 함께 git push 명령을 사용합니다. 그런 다음 원격 이름(종종 원본)과 분기 이름을 제공합니다.

GitHub 데스크톱을 사용하여 로컬 및 원격 분기 삭제

명령줄 git 프로그램과 달리, GitHub의 데스크톱 앱 활성 분기만 삭제할 수 있습니다. 삭제 옵션을 선택하고 확인하여 분기 메뉴를 통해 이 작업을 수행할 수 있습니다.

GitHub Desktop에서는 git 자체가 이를 지원하더라도 기본 브랜치(예: main)를 삭제할 수 없습니다. 기본 분기가 현재 활성화된 분기인 경우 앱은 메뉴 작업을 비활성화합니다.

해당 분기가 원격 분기도 나타내는 경우 GitHub Desktop은 원격에서도 해당 분기를 삭제할 수 있는 옵션을 제공합니다.

GitKraken을 사용하여 브랜치 삭제하기

GitKraken 왼쪽 사이드바에 저장소의 로컬 및 원격 분기를 표시합니다. 각각 별도로 삭제해야 합니다.

해당 지점 이름 위로 마우스를 이동하고 세 개의 수직 점처럼 보이는 지점 작업 메뉴를 클릭합니다. 메뉴에서 <분기 이름> 삭제를 선택합니다.

이것이 파괴적인 작업임을 알리는 확인 메시지가 표시됩니다. 삭제 버튼을 눌러 계속할 것인지 확인할 수 있습니다.

git 명령줄 프로그램의 기본 동작을 반영하려면 먼저 삭제하려는 분기가 아닌 다른 분기로 전환해야 합니다. 그렇지 않으면 다음과 같은 오류 메시지가 표시됩니다.

Tower를 사용하여 로컬 및 원격 지점 삭제

다음을 사용하여 지점 삭제 GitKraken을 사용하여 브랜치를 삭제하는 것과 매우 유사합니다. 앱의 왼쪽 패널에 로컬 및 원격 분기가 표시됩니다. 분기를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 삭제 옵션을 선택합니다.

  50가지 자주 묻는 WebSphere 인터뷰 질문 및 답변

한 가지 주요 차이점은 확인 중에 로컬 분기와 함께 원격 분기를 삭제할 수 있다는 것입니다.

GitHub에서 브랜치 삭제

GitHub는 원격 소스로만 작동하므로 해당 분기는 기본적으로 원격입니다. GitHub 웹사이트를 사용하여 브랜치를 삭제하는 경우 여기에 있는 다른 방법 중 하나를 사용하여 해당 로컬 브랜치를 삭제해야 합니다.

GitHub 데스크톱 앱과 마찬가지로 GitHub 웹사이트에서는 기본 분기 삭제를 허용하지 않습니다. 시도하면 다음과 같은 오류 메시지가 표시됩니다.

그러나 다른 분기를 삭제하는 것은 간단합니다. 저장소의 코드 페이지에서 분기 링크를 클릭하고 삭제할 분기를 찾은 다음 휴지통처럼 보이는 분기 삭제 아이콘을 클릭합니다.

병합되지 않은 변경 사항에 대한 확인은 없으므로 GitHub는 해당 분기를 즉시 삭제합니다. 그러나 이는 항상 원격 분기를 나타내므로 이 동작은 의미가 있습니다.

삭제한 후에는 분기 복원 버튼이 표시됩니다. 그러나 이는 실수로 삭제 아이콘을 클릭한 경우를 대비해 유용한 실행 취소 기능일 뿐입니다. 페이지를 새로 고치거나 다른 곳으로 이동하는 즉시 옵션을 잃게 되므로 이에 의존하지 마세요!

Bitbucket에서 로컬 및 원격 분기 삭제

GitHub와 마찬가지로 Bitbucket에서는 기본 브랜치를 삭제할 수 없습니다. Bitbucket은 이를 리포지토리 설정의 기본 분기라고 부릅니다. 해당 작업 메뉴를 통해 지점 탭에 나열된 다른 지점을 삭제할 수 있습니다.

대규모 정리 작업을 수행하는 경우 한 번에 두 개 이상의 분기를 삭제할 수도 있습니다.

브랜치 삭제는 일반적인 Git 워크플로의 일부입니다.

Git 분기는 워크플로를 복잡하게 만들 수 있으며, 특히 로컬, 원격 및 추적 분기가 있는 경우 더욱 그렇습니다. 그러나 단순한 일상적인 개발의 경우 항상 로컬 브랜치를 생성하고 삭제하게 될 것입니다. 이는 익숙해져야 할 일반적인 git 작업 흐름의 핵심 측면입니다.

브랜치를 삭제하는 방법을 정확히 기억하기 어려운 경우 별칭을 설정하여 브랜치를 제거하고 프로세스를 단순화하는 것이 좋습니다.