2015-01-14 3 views
0

지난주에 우리 팀원이 GitHub 저장소로 가서 그 태그/브랜치 풀다운의 브랜치 목록에서 태그 이름을 찾았습니다. 태그 이름을 입력 한 후 return 키를 누릅니다. 하지만 태그 이름이었고 분기 탭을 선택했습니다. 그래서 GitHub는 (팀원이 돌아 왔을 때) 유용하게 분기를 만들었습니다 (마스터로부터). 그러나 누군가가 태그를 배포하려고 시도하고 지점을 대신 가져올 때까지 이러한 일이 발생했다는 것을 알지 못했습니다.태그와 동일한 이름의 GitHub 브랜치

이 문제가 발생한 사람이 있습니까? 우리는 tags /를 사용하여 배치를 테스트하려하지만, AWS와 capistrano 기반의 두 가지 배치 환경이 있습니다. 우리의 카피스트라노 버전은 분명히 그 문법을 좋아하지 않으며, refs/tags /를 사용하면 "refs/tags /"부분을 벗기고 그냥 사용합니다. 그래서 AWS가 무엇을하고 있는지 걱정하게되었습니다. 나는 지금 그것을 조사하려고 노력하고있다. 그러나 나는 요리사에게 그렇게 위대하지 않다. 그래서 나는 여기서 물을 것이라고 생각했다.

GitHub에서 태그와 동일한 이름의 분기를 만들지 못하게 할 방법이 있습니까? AWS는 tags/ 부품을 사용합니까 아니면 스트립 처리합니까?

답변

0

분기의 이름을 변경하지 않는 이유는 무엇입니까?

git branch -m new_name old_name 

심지어 reflog도 보존됩니다.

+0

새 분기가 필요하지 않습니다. 우리는 그것이 만들어 졌다는 것을 몰랐습니다. 팀원은 단지 태그를 검색하고 태그 이름을 입력 한 후 리턴을 누르고 심지어 지점을 만들었다는 것을 알지 못했습니다. – nroose

0

탐색 할 수있는 길은 클라이언트 쪽 pre-push hook을 작성하는 것입니다.

프리 푸시 후크가 0을 벗어나면 밀림이 방지됩니다. 1을 종료하면 밀어 넣기가 진행됩니다. 문서에 따르면

:이 훅이 자식 푸시에 의해 불려과 장소를 복용 에서 푸시를 방지 할 수 있습니다

. 이 후크는 의 이름과 대상 원격 위치를 제공하는 두 개의 매개 변수로 호출됩니다. 이름이 지정된 원격이 이 아닌 경우 두 값이 동일합니다.

형태의 라인과 훅의 표준 입력에서 제공되는 푸시하는 것에 대한

정보 : 외래 후크받을 실행했다 : 명령 자식 밀어 원산지 마스터가있는 경우, 예를 들어

<local ref> SP <local sha1> SP <remote ref> SP <remote sha1> LF 다음과 같은 라인 :

refs/heads/master 67890 refs/heads/foreign 12345

나는 "지점"의 존재를 확인하는 간단한 스크립트를 상상할 수 <local ref>에 있고 메시지가 "use tags, not branches" 또는 그 밖의 것으로 끝납니다.

후크를 저장소로 전파하려면 set a hookPath using git config이 필요합니다.

관련 문제