문제

나는 두 개의 분기가있는 git 저장소가 있습니다. 하나는 제조/테스트에 사용되는 코드와 실제 프로덕션 펌웨어 (거의 동일)입니다. 이제 제조업체로 보내기 위해 릴리스를 잘라야하므로 자연스럽게 두 가지에 적절한 태그를 내려 놓고 싶습니다.

그러나 Git은 두 가지에 동일한 태그 이름을 넣을 수 없을 것 같습니다. 분기에 개별적으로 태그를 붙이려고하면 Seconds Branch 태그로 이동할 때 태그가 이미 존재한다고 알려줍니다. 나는 Git 태그에 두 개의 커밋을 통과 시키려고 노력했지만 그것을 좋아하지 않았다. 반드시 두 개의 브랜치에 Lockstep에 태그를 붙일 필요는 없지만 이름 충돌을 피하기 위해 태그에 임의의 문자를 추가하고 싶지는 않습니다.

내가 원하는 것을 할 수있는 방법이 있습니까, 아니면 잘못된 일을하고 싶습니까?


한 가지 지점은 제조업이 장치에 올바르게 조립되었음을 테스트하기 위해 제조 한 코드입니다. 다른 지점은 제품에서 배송하는 코드입니다. 릴리스 당 실제로 두 개의 지점이 아닙니다. 이것은이 제품의 첫 번째 릴리스이므로 두 가지 모두에 대한 첫 번째 릴리스이므로 두 분기에 'Release-1.0'으로 태그를 붙이려고했습니다.

도움이 되었습니까?

해결책

당신은 잘못된 일을하고 싶어요. 태그의 목적은 특정 개정을 명확하게 식별하는 것입니다. 내가 당신이라면, 나는 생산 지점에만 태그를 지정하고 테스트 지점에 끊임없이 남게됩니다.

그러나 릴리스 당 두 개의 독립 지점이 있다는 것은 매우 이상합니다. 왜 이런거야? 답은 더 나은 솔루션을 설명하는 데 도움이 될 수 있습니다.


태그는 실제로 동일한 개정을 가리키지 않기 때문에 (잠재적으로) 다른 개정판이므로 태그는 다음과 같습니다.

  • appname-1.0-manufacturing
  • appname-1.0-production

이렇게하면 각 태그가 속한 릴리스와 코드가 어디에 있는지 알 수 있습니다.

다른 팁

태그는 단 하나의 커밋에 이름을 부여하므로, 원하는 것을 할 수있는 방법이 없을 것입니다.

원하는 결과가 무엇인지 궁금합니다. 내 말은, 태그의 한 가지 목적은 나중에 체크 아웃 할 수있는 이름입니다. 그래서 당신이 git checkout 두 가지를 지칭하는 태그에 .. 어떻게됩니까?

늦게 파티에 오지만 또 다른 대안은 두 지점을 병합하는 것이므로, 어느 시점에서는 커밋이 갈등없이 공존 할 수 있다고 가정 할 때 테스트 코드 및 생산 코드의 상태를 포함했습니다 (이 경우에는 다음과 같은 경우에. 합병을 시도 할 가치가 있는지 여부). 이것은 또한 테스트 브랜치와 생산 지점을 태그를 붙일 때 동기화하려고 시도 할 수 있으므로 실수로 잘못된 분기에 태그를 지정하는 상황을 피하는 데 도움이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top