저는 프로젝트를 유지하기 위해 git/github을 사용하여 PHP 프로젝트를 진행하고 있습니다. 나는 간단한 분기 모델 (master, dev, hotfix-, feature-, release)을 따르고있다. 내 응용 프로그램에는 버전 번호를 정의하는 구성 파일 (config.php)이 들어 있습니다. 최근에는 핫픽스를 만들어야했습니다. 마스터에서 핫픽스 분기를 분기하고, 변경 한 다음 버전을 버렸습니다 (예 : 1.1.2에서 1.1.3). 내가 다시 마스터로 핫픽스를 병합했을 때, 나는 아무런 문제가 없었다. 내가 dev에 핫픽스 분기를 병합했을 때, 나는 버전 번호 라인에 내 설정 파일과의 병합 충돌이 있었다. 내 dev 브랜치에서, 나는 다른 버전 번호를 가지고 있었고, 그래서 그것이 충돌의 원인이라고 생각하고있다. 어떻게하면 이것을 피할 수 있습니까? 다른 시간 및/또는 지점에서 버전을 충돌해야합니까?버전을 부딪 힐 때 병합 충돌이 발생하는 이유는 무엇입니까?
3
A
답변
2
아니요 병합 할 때이를 피할 수는 없습니다. 동일한 파일에서 같은 행의 두 변경 사항이 충돌로 끝납니다.
체리 피크를 사용하여 버전 충돌을 피하는 것이 고려해 봤습니까? 또 다른 옵션은 버전을 하드 코딩하지 않고 git에서 자동으로 파생시키지 않을 것입니다 (예 : 릴리스 분기는 커밋 수에 따라 숫자를 얻고 핫픽스 분기는 분기 이름을 기반으로하는 접미어입니다)
3
"ours "또는"theirs "전략을 통해 혼란을 해결하는 방법을 알았지 만, 특정 전략에 맞게 전략을 사용할 수는 없다고 생각합니다. 개발자가 버전 번호를 업데이트하지 않고 git-hook을 사용하여 업데이트하는 것을 피하기를 원할 것입니다.
구글 검색
는이 켜져 : http://cd34.com/blog/programming/using-git-to-generate-an-automatic-version-number/편집 : 는 다른 방법으로, 당신은 단순히 버전 번호를 토큰 화 할 수 있고 단지 자식이 완전히 무시했다. 배포 프로세스에서 몇 가지 파생 버전 번호로 토큰을 대체 했습니까? 증분 또는 git SHA1 또는 다른 번호를 기반으로합니다.
재미있는 주제는 내 팀원이 실제로해야 할 일입니다.
관련 문제
- 1. mongodb 충돌이 발생하는 이유는 무엇입니까?
- 2. XNA - Pong Clone - 벽에 부딪 힐 때 공을 반사합니까?
- 3. 레이블이 벽에 부딪 힐 때 방향을 바꾸려면 어떻게해야합니까?
- 4. 구조체에 문자열을 넣으면 충돌이 발생하는 이유는 무엇입니까?
- 5. 동일한 파일간에 트리 충돌이 발생하는 이유는 무엇입니까?
- 6. iPad 1 Safari에서 충돌이 발생하는 이유는 무엇입니까?
- 7. 사용자가 매시간 제출 한 의견을 부딪 힐 수 있습니까?
- 8. NSManagedObjectContext를 'clean'으로 저장할 때 병합 오류가 발생하는 이유는 무엇입니까?
- 9. 스토리 보드를 사용할 때 iOS objective c에서 병합 충돌이 무엇입니까
- 10. 목록이 끝이나 시작에 부딪 힐 때 내 슬라이드 쇼에서 화살표를 제거하는 방법
- 11. 안드로이드 머리말과 꼬리말이 목록 상단 또는 하단에 부딪 힐 때 강조 표시
- 12. 이름 충돌이 발생하는 이유
- 13. 편집 한 WtWithQt 예제에서 충돌이 발생하는 이유는 무엇입니까?
- 14. Visual Studio 2013/2015에서 vsnprintf 충돌이 발생하는 이유는 무엇입니까?
- 15. 0xcccccc에 대한 액세스 위반으로 인해이 충돌이 발생하는 이유는 무엇입니까?
- 16. 이 방법으로 Flash를 호출하지 않고도 충돌이 발생하는 이유는 무엇입니까?
- 17. null 포인터의 참조 해제로 인해 충돌이 발생하는 이유는 무엇입니까?
- 18. git rebase -p -i와 충돌이 발생하는 이유는 무엇입니까?
- 19. iPhone 응용 프로그램을 다시 연 후 충돌이 발생하는 이유는 무엇입니까?
- 20. iOS 7에서 스 와이프 - 삭제 충돌이 발생하는 이유는 무엇입니까?
- 21. 아이폰 단위 테스트에서 UIFont를 인스턴스화하면 충돌이 발생하는 이유는 무엇입니까?
- 22. 내 업데이트 된 응용 프로그램이 IOS8 전용으로 시작될 때 충돌이 발생하는 이유는 무엇입니까?
- 23. CONFLICT (내용) : 병합 충돌이
- 24. DevTools에서 충돌이 발생하는 스크립트
- 25. PEAR을 설치할 때 오류가 발생하는 이유는 무엇입니까?
- 26. 파일이있을 때 FileNotFoundException이 발생하는 이유는 무엇입니까?
- 27. ctyp을 가져올 때 ImportError가 발생하는 이유는 무엇입니까?
- 28. ifstream을 전달할 때 오류가 발생하는 이유는 무엇입니까?
- 29. 동적으로 돌아올 때 RuntimeBinderException이 발생하는 이유는 무엇입니까?
- 30. 오류가 발생하는 이유는 무엇입니까?
그래서'git describe --all> version.txt'과 같이 간단하게 버전을 하드 코딩하는 대신 파일 내용을 읽는 것이 더 쉬울 것이라고 생각하십니까? 나는 내 방식대로 계속하면이 문제가 계속 될 것 같아요. – Jeff
예, 많은 사람들이 그렇게합니다. – ThiefMaster