지점을 로컬로 제거하는 방법?


159

내 저장소에 마스터 및 개발자 분기가 있습니다. 실수로 커밋하지 않도록 컴퓨터에서 마스터 브랜치를 제거하고 싶습니다 (발생했습니다.).

로컬 원격으로 분기를 삭제하는 방법에 대한 질문이 있지만 로컬에서만 분기를 삭제하는 방법을 찾을 수 없었습니다.

한 대답은 이것을 사용한다고 말했습니다.

git branch -d local_branch_name

그러나 나는 그것을 시도했지만 지점은 여전히 ​​GitHub 응용 프로그램에 나타납니다.


그 명령의 결과는 무엇입니까? 어떤 지점에 있습니까? 콘솔에 어떻게 표시됩니까?
SLaks

@ SLaks 내 질문에 유형이있었습니다. 콘솔에서는 실제로 브랜치가 삭제되었다고 말하지만 GitHub 응용 프로그램에서는 (다시 시작한 후에도) 브랜치 및 커밋이 여전히 표시됩니다. 출력은Deleted branch master (was e8a8e29).
Nate

Windows 용 GitHub는 원격 브랜치를 보여줍니다
SLaks

@SLaks 따라서 지점을 로컬로 삭제 한 후 Windows 용 GitHub 응용 프로그램에서 지점을 클릭하면 다시 복제됩니까? 마스터 브랜치를 직접 변경할 수 없도록하고 싶습니다.
Nate

답변:


114

나는 당신이 원하는 것을 이해 (귀하의 의견에 따라) 생각 : 당신이 저장소의 로컬 복사본이 일반 지역 지점도 갖고 싶어 master, 원격 추적 브랜치를 origin/master당신도 저장소 불구하고, 복제 - 더 GitHub의 하나 —github 버전에서 삭제 하지 않으려 는 로컬 분기 master가 있습니다 .

원격 추적 브랜치를 로컬에서 삭제하여이를 수행 할 수 있지만, 자식이 git에 "지점이 무엇입니까"를 요청하기 때문에 git에 로컬 저장소를 원격 저장소와 동기화하도록 요청할 때마다 다시 돌아옵니다. "I have master" 라고 말하면 git (re)가 origin/master당신을 위해 만들어 져서 저장소가 가지고있는 것을 가지고 있습니다.

명령 행 인터페이스를 사용하여 원격 추적 브랜치를 로컬로 삭제하려면 다음을 수행하십시오.

git branch -d -r origin/master

다시 한번, 그것은 단지 재 동기화로 돌아올 것입니다. 이다 이뿐만 아니라 (사용 물리 칠 수 remote.origin.fetch조작),하지만 당신은 아마 더 나은 오프 단지 만들거나 수정하지에 충분히 훈련되고있어 master로컬입니다.




17

원래 문제를 이해할 수있는 한 실수로 로컬 마스터에 커밋을 추가 했지만 해당 변경 사항을 아직 푸시하지 않았습니다. 이제 변경 사항을 취소하고 로컬 변경 사항을 삭제하고 원격 마스터 브랜치에서 새 마스터 브랜치를 작성하려고합니다.

변경 사항을 재설정하고 원격 서버에서 마스터를 다시로드 할 수 있습니다.

git reset --hard origin/master

13

Windows 용 Github 애플리케이션은 리포지토리의 모든 원격 분기를 보여줍니다. 로 지점을 로컬로 삭제 한 경우 $ git branch -d [branch_name]원격 지점은 여전히 ​​Github 리포지토리에 존재하며 Windows Github 응용 프로그램에 관계없이 나타납니다.

분기를 완전히 삭제하려면 (원격으로도) 위의 명령을와 함께 사용하십시오 $ git push origin :[name_of_your_new_branch]. 경고 : 이 명령은 기존 분기를 모두 지우고 코드가 손실 될 수 있습니다. 조심하십시오, 나는 이것이 당신이하려는 일이라고 생각하지 않습니다.

그러나 로컬 지점 변경 사항을 삭제할 때마다 원격 지점이 여전히 응용 프로그램에 나타납니다. 계속 변경하지 않으려면 무시하고 클릭하지 마십시오. 그렇지 않으면 리포지토리가 복제 될 수 있습니다. 더 궁금한 점이 있으면 알려주세요.


1

다른 지점으로 전환하고 같은 것을 시도해야합니다.

자식 분기 -d


1
이것이 대답이되어야합니까? 아니면 해명은? 아니면 평범한 질문입니까? 말할 수 없을 정도로 짧습니다. 정교하게 하시겠습니까?
Yunnosch

0

귀하의 태그에 따라 Github을 사용한다고 가정합니다. 마스터 브랜치에 대해 일부 브랜치 보호 규칙을 작성해보십시오. 그렇게하면 마스터로 푸시하려고 시도하더라도 거부합니다.

1) Github에서 리포지토리의 '설정'탭으로 이동하십시오.

2) 왼쪽 메뉴에서 '분기'를 클릭하십시오.

3) '규칙 추가'를 클릭하십시오

4) 분기 패턴으로 '마스터'를 입력하십시오.

5) '병합 전에 풀 요청 검토 필요'를 확인하십시오.

또한 개발자 브랜치에 대해서도 동일한 작업을 수행하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.