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

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

브랜치는 새로운 기능을 작성하고 버그를 수정하는 등의 저장소의 일부입니다. 예를 들어, 세 명의 개발자가 하나의 프로젝트를 진행하는 경우 브랜치는 격리되어 있으므로 각자 자신의 브랜치를 만들고 해당 브랜치에서 작업할 수 있으므로 모든 사람이 독립적인 브랜치에서 작업할 수 있습니다.
지점은 다음과 같습니다.

  • 로컬 – 로컬 컴퓨터에서만 가능합니다.
  • 원격 – GitHub 저장소와 같이 원격에 위치합니다.

실제로 세 번째 유형의 분기, 즉 원격 분기에 대한 참조가 있습니다. 청소할 때 이 가지도 청소해야 합니다. 오늘 기사에서는 분기 삭제와 관련된 다양한 시나리오에 대해 설명합니다. 이 문서에서는 GitHub에서 로컬 분기와 원격 분기를 삭제하는 방법과 분기를 삭제할 때 발생하는 몇 가지 일반적인 실수를 보여줍니다.

지점을 삭제해야 하는 이유

Git 저장소가 오래되어 더 이상 사용되지 않는 오래된 분기가 아닌지 확인하세요. 정기적으로 브랜치를 정리하고, 오래된 브랜치를 삭제하거나, 메인 브랜치에 병합하여 코드 저장소를 깔끔하게 정리해야 합니다.

Git 로컬 브랜치 삭제

로컬 분기를 삭제해도 원격 분기는 삭제되지 않습니다. 로컬에서 분기를 삭제하는 명령은 다음과 같습니다.

git branch -d "branch name"

이미지.png

다음 명령도 구문이 약간 다를 뿐 동일한 기능을 수행합니다.

git branch --delete <branch>

-d옵션은 --delete브랜치가 상위 브랜치에 완전히 병합된 경우에만 브랜치를 삭제합니다. 병합되지 않은 변경 사항이 있으면 분기가 삭제되지 않으며 오류가 발생합니다. 병합 상태와 관계없이 브랜치를 삭제하려면 브랜치를 강제 삭제해야 합니다. 다음 명령을 사용하여 로컬 분기를 강제로 삭제할 수 있습니다.

git branch -D <branchName>

기억해야 할 또 다른 사항은 리베이스/병합입니다. 브랜치가 리베이스/병합을 진행 중인 경우 "리베이스/병합 진행 중" 오류가 표시되며 브랜치를 삭제할 수 없습니다. 원하는 경우 강제로 제거하거나 다시 시도하기 전에 리베이스/병합 문제를 해결할 수 있습니다.

Git 원격 지점 삭제

원격 저장소에서 브랜치를 삭제하려면 다음 명령을 사용하십시오.

git push origin -d "branch name" 

이미지.png

위의 예에서는 원격 분기가 dev-testing삭제되었습니다. 다음 명령은 모두 원격 분기를 삭제합니다.

git push <remote_name> --delete <branch_name>

1.7.0 이전 Git 버전을 사용하는 경우 다음 명령이 적용됩니다.

git push <remote_name> :<branch_name> 

실행하면 git push origin –delete원격 분기만 삭제됩니다. 명령어 마지막에는 브랜치 이름을 언급하지 않지만, 브랜치 이름을 맨 마지막에 넣으면 삭제와 동시에 리모트에 푸시됩니다.

추적 지점은 무엇이며 삭제하는 방법

원격 지점에서 check out로컬 지점으로 분기하면 추적 분기라는 것이 자동으로 생성됩니다. 이는 원격 지점과 직접적인 관계가 있는 로컬 지점입니다. 이는 로컬 머신 캐시에는 존재하지만 원격 저장소에는 존재하지 않음을 의미합니다.

git push origin :<branchname>명령을 사용하여 원격 브랜치를 삭제하면 해당 브랜치에 대한 참조가 팀 구성원의 로컬 저장소에 계속 존재합니다 . 이제 로컬 참조도 삭제해야 합니다. git remote prune origin원격에 존재하지 않는 분기에 대한 참조를 제거합니다.

동일한 명령의 또 다른 버전은 다음과 같습니다. git fetch <remote> --prune이 명령은 오래된 원격 추적 분기를 모두 삭제합니다. 이 명령의 약어는 다음과 같습니다.git fetch <remote> -p

특정 로컬 원격 추적 분기를 삭제하려면 다음 명령을 사용할 수 있습니다. git branch --delete --remotes <remote>/<branch>이 명령의 약어는 다음과 같습니다.gitbranch -dr <remote>/<branch>

다음을 사용하여 git push명령줄 에서 X원격 분기를 삭제하는 경우origin/Xgit fetch -prunegit fetch –p

이미지.png

원격 추적 분기가 삭제되었는지 확인하려면 다음 명령을 실행할 수 있습니다.

git branch –remotes

다음과 같이 축약될 수 있습니다.

git branch –r

웹 콘솔을 사용하여 Github에서 브랜치를 삭제하는 방법

  • 저장소의 홈 페이지로 이동합니다.
  • 파일 목록 위에서 Branch를 클릭하세요.
  • 삭제하려는 지점으로 이동하여 삭제 아이콘을 클릭하세요.

이미지.png

일반적인 문제

지점을 삭제할 수 없습니다.

해결 방법: 이미 있는 분기는 삭제할 수 없습니다. 먼저 다른 브랜치로 전환한 후 원하는 브랜치를 삭제해야 합니다. 아래 예를 참조하세요.

이미지.png

위의 예에서는 이름이 다른 다른 분기로 전환한 다음 해당 분기를 성공적으로 dev-arsam삭제할 수 있었습니다 .test

실수로 브랜치를 삭제했는데 복원할 수 있나요?

해결 방법: 예, 명령을 사용하여 git reflog삭제된 브랜치 상단에서 커밋을 찾아서 SHA1그렇게 하면 됩니다 git checkout [sha]. 커밋을 한 후에는 git branch branchname<SHA>거기서 브랜치를 다시 생성할 수 있습니다.

git reflog명령은 지점에 대한 최근 업데이트를 기록하는 데 사용됩니다. 반환 커밋을 허용합니다. 기록이 다시 작성된 후 참조 로그에는 이전 분기 커밋 기록이 포함되며 필요한 경우 특정 상태로 반환될 수 있습니다.

dev-arsam아래에는 명명된 분기가 되돌려지는 예가 나와 있습니다 .

이미지.png

마스터에 다시 병합할 때 브랜치를 자동으로 삭제하는 방법

master브랜치가 상위 브랜치에 병합되는 즉시 자동으로 삭제되도록 구성을 설정할 수 있습니다 (예: 브랜치).

  • GitHub에서 저장소의 홈 페이지로 이동합니다.
  • 저장소 이름 아래에서 설정을 클릭합니다.
  • "Pull Requests"에서 를 선택하거나 선택 취소합니다 Automatically delete head branches.

이미지.png

태그와 이름이 같은 브랜치를 삭제하면 오류가 발생합니다.

tag와 동일한 이름을 가진 브랜치를 삭제하려고 하면 오류 메시지가 나타날 수 있습니다. branch-or-tag-name matches more than one와 유사한 오류가 표시됩니다 .

대신 삭제할 분기를 지정하려면 tag다음을 시도하십시오.

git push origin :refs/heads/branch-name

tag마찬가지로 분기 대신 삭제를 지정하려면 다음 명령을 사용하십시오.

git push origin :refs/tags/tag-name

요약

이번 글에서는 Git에서 브랜치를 삭제하는 다양한 방법에 대해 알아보고, Git에서 브랜치를 삭제하는 것과 관련된 일반적인 질문에 답변해 드렸으니, 일상 업무와 개발에 활용하실 수 있을 거라 믿습니다.

추천

출처blog.csdn.net/p1967914901/article/details/131452348