포크된 저장소에서 업스트림 브랜치를 정리하는 것이 안전합니까?

포크된 저장소에서 업스트림 브랜치를 정리하는 것이 안전합니까?

저장소를 포크하면 업스트림 저장소의 모든 브랜치가 함께 제공됩니다. 때로는 내가 작업 중인 브랜치에만 관심이 있는데 업스트림 브랜치가 압도적으로 많은 경우도 있습니다. 로컬 저장소에 두 원격 장치를 모두 설정할 수 있는데 두 저장소에 동일한 분기를 갖는 것이 중복되는 것 같습니다.

예를 들어:

저장소 A에는 분기 A1,...,A1000이 있습니다. GitHub에서 이 저장소를 포크하면 동일한 분기(A1,...,A1000)가 있는 새 저장소 B가 생성됩니다. 저장소 B에 내가 작업 중인 브랜치(예: B1 및 B2)만 포함하고 싶습니다.

나와 내 팀을 위해 작업을 더 간단하고 깔끔하게 만들기 위해 내 포크에서 업스트림 브랜치를 제거하는 것이 가능합니까(그리고 권장됩니까)?(즉, 우리 포크의 유일한 브랜치는 우리가 작업 중인 브랜치입니다) 적어도 업스트림 저장소의 기본 분기가 여전히 필요합니까?

답변1

나와 내 팀을 위해 작업을 더 간단하고 깔끔하게 만들기 위해 내 포크에서 업스트림 브랜치를 제거하는 것이 가능합니까(그리고 권장됩니까)?(즉, 우리 포크의 유일한 브랜치는 우리가 작업 중인 브랜치입니다)

포크에서 업스트림 분기를 제거할 필요는 없지만 가장 확실하게 가능합니다. 저장소를 분기 하면 git clone기본 분기만 복제됩니다(분기 이름을 지정하지 않으면 대신 해당 분기가 복제됩니다). git fetch원하는 특정 지점을 지정하지 않는 한 다른 지점의 기록은 로컬에도 존재하지 않습니다 git fetch --all.

즉, 이러한 업스트림 분기를 삭제해도 워크플로가 크게 개선되지 않습니다. 제가 생각할 수 있는 유일한 이점은 선별할 분기가 적을수록 관심 있는 분기를 찾는 것이 더 쉬울 수 있다는 것입니다.

어떤 경우든 원격에서 분기를 삭제하는 명령(해당 분기가 있는 경우 로컬에서 삭제되지 않음)은 입니다 git push origin :branchToBeDeleted.

로컬 브랜치 삭제(원격 포크가 아닌 로컬 저장소에서만)는 를 사용하여 수행할 수 있습니다 git branch -d branchToBeDeleted.

로컬 및 원격 지점 삭제에 대한 자세한 내용은 여기를 참조하세요..


적어도 업스트림 저장소의 기본 분기가 여전히 필요합니까?

간단히 말해서 기본 분기를 유지하는 것이 좋습니다. git위에 제공된 구문을 사용하면 기본 원격 분기를 삭제할 수 없을 것 같습니다 (누군가 여기서 시도한 것처럼):

remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:<user>/<repo>.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:<user>/<repo>.git'

기본 브랜치가 유지하고 싶지 않은 경우 GitHub 또는 사용하는 Git 호스팅 플랫폼의 해당 저장소 설정으로 이동하여 문제의 브랜치를 삭제하기 전에 기본 브랜치를 변경하세요.

관련 정보