program story

Git 브랜치 삭제

inputbox 2020. 10. 14. 07:47
반응형

Git 브랜치 삭제


Git에서 분기의 "삭제"는 무엇을 의미합니까?

저장소에서 사라지나요? 아니면 여전히을 통해 탐색 할 수 git branch있습니까?

내가 정말로하고 싶은 것은 브랜치를 "막 다른 끝"으로 표시하는 것입니다. 즉, 브랜치가 마스터와 너무 멀어서 그 브랜치 아래에 좋은 아이디어가 있었지만 누구도이를 시작점으로 사용해서는 안됩니다. 참고 용으로 보관하고 싶습니다.


분기를 삭제할 수 있지만 먼저 태그를 지정하여 기록이 사라지지 않도록합니다. 이렇게하면 브랜치가 브랜치 목록에 표시되지 않으므로 사람들이 작업하는 것을 막을 수 있지만 작업은 영구적으로 지워지지 않습니다 (가비지 수집이 실행 된 후에도). 예를 들어 관련성이 없어진 브랜치가 있지만 영구적으로 삭제할 준비가되지 않은 경우 "archive / < branch-name >" 태그를 지정합니다 .

master또는 다른 지점 에있는 동안 :

git tag archive/foo foo
git branch -D foo

이렇게하면 삭제하기 전에 분기 archive/foo에서 이름이 지정된 태그가 생성 됩니다. 태그에 메시지를 추가하여 분기에 무엇이 있는지, 왜 존재했는지, 왜 지금 막 다른 곳인지 등을 설명 할 수 있습니다.foofoo

git tag -m 'Foo is deprecated in favor of bar' archive/foo foo

분기가 더 이상 사용되지 않는 이유를 기록하는 기능은 분기를 대체 네임 스페이스로 이동하는 것보다 태그를 지정하는 것의 장점 일 수 있습니다.

이러한 방식으로 보관 된 브랜치를 부활시켜야하는 경우 다음과 같이 간단합니다.

git branch foo archive/foo
git tag -d archive/foo       # Optional

이제 분기가 삭제되지 않은 것처럼 돌아 왔습니다.


Git 브랜치는 개정에 대한 참조로 저장됩니다. 분기를 삭제하면 참조가 제거됩니다. 그 개정판을 참조하는 것이 없으면 결국 가비지 수집됩니다. 또한 브랜치를 삭제하면 리포지토리에서 제대로 삭제됩니다. 분기를 더 이상 사용되지 않음으로 표시하고 나중에 사용할 수 있도록 유지하려면 분기를 하위 디렉터리로 이동할 수 있습니다.

$ git branch
* master
  testing_feature_one
  testing_feature_two
$ git branch -m testing_feature_one deprecated/testing_feature_one
$ git branch
  deprecated/testing_feature_one
* master
  testing_feature_two

또는 더 이상 사용되지 않는 브랜치에 대한 별도의 저장소를 생성하고이를 가져와 원본에서 삭제할 수 있습니다. 두 경우 모두 브랜치를 팔로우하는 모든 사용자에게 영향을 미칠 것입니다. 저장소의 내용은 변경되지 않고 브랜치 이름도 변경되지 않지만 다시 가져 오려고하면 구성에서 대상을 변경해야합니다.


git branch -D <branchName>저장소에서 브랜치를 삭제합니다. 더 이상 보거나 탐색 할 수 없습니다. 또한 해당 분기에서 변경 한 모든 파일을 잃게됩니다.

https://git-scm.com/docs/git-branch


git 브랜치를 통해 탐색 할 수 없으며 가비지 수집이 수행 될 때까지 저장소에서 손실되지 않습니다.

문제의 브랜치를 막 다른 골목으로 표시하고 싶다면 그냥 그렇게하세요 (git가 당신을 위해 이것을 할 수는 없지만 당신은 확실히 할 수 있습니다)!

(원하는 방식으로) 역사 참고 자료로 레이블을 지정하는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/2342821/git-branch-deletion

반응형