2017-12-13 7 views
1

프로젝트에 두 개의 분기가 있습니다. 모든 브랜치는 양쪽 모두에 Main.java를 포함합니다.힘내는 2 개의 분기를 이동 된 파일과 병합합니다.

  • 첫 번째 지점에서 Main.java에 몇 가지 변경 사항을 적용합니다 (일부 메소드 추가 등).
  • 두 번째 지점에서 Main.java를 다른 폴더로 옮기고 어떤 다른 방법으로 클래스 내에서 다른 변경 작업을 수행합니다.

그런 다음 첫 번째 분기와 두 번째 분기를 병합하려고했습니다. 그러나 자식은 동일한 파일이라는 것을 이해하지 못하기 때문에 결과적으로 두 개의 파일 인 Main.java가 있지만 다른 폴더에 있습니다. 하나의 Main.java는 첫 번째 분기의 변경 사항을 포함하고 다른 Main.java는 두 번째 분기의 변경 사항을 포함합니다.

두 번째 브랜치 (다른 폴더로 이동 된 파일로)에서 변경 사항을 커밋하면 이전 경로가있는 Main.java 파일이 제거되고 새 경로가있는 Main.java가 추가됩니다. 내가 이해하는 바와 같이, 그것은 "수정", "이동"과 같은 것을 말해야 만합니다 ...

그 파일은 두 번째 분기의 폴더에 있고 두 분기의 변경 사항을 포함합니다. 또는, 적어도, 자식이 동일한 파일이고 충돌 (콘텐츠), 충돌 (수정/삭제)이 아니라는 사실을 이해합니다.

의견이 있으십니까?

+0

[Git : 수동으로 이름이 변경된 파일, Git confused] 가능한 복제본 (https://stackoverflow.com/questions/4708655/git-renamed-file-manually-git-confused) –

+0

Puh, 소리가 심하다. 두 가지 중 하나를 수행합니다. Manalay는 한 지점에서 다른 지점으로 변경 사항을 통합합니다. 또는 : 파일을 원래 위치로 다시 이동하거나, 병합하거나, 충돌 문제를 해결하거나, 파일을 이동하십시오. 더 나은 솔루션이 있는지 알고 싶습니다. – Korashen

답변

0

그래서, 사실, 내가 어떤 자식 문서를 강제로 다음 문자열을 찾습니다. "힘내 파일의 90 % 이상이 변경되지 않은 경우 이름 바꾸기를 할 쌍을 추가/삭제를 고려해야한다"

이 프로젝트는 테스트 프로젝트이므로 Main.java는 한 가지 방법 밖에 없습니다. 그리고 두 번째 지점에서 나는이 방법을 다른 방법으로 바꾼다. 이것은 90 % 이상의 변화를 의미한다. 그래서 자식 "삭제/추가"대신 "수정".

+0

기본값은 실제로는 "50 % 유사도 색인"이며, 유사성 색인 값 계산은 매우 모호하지만 일반적으로 그렇습니다. 이것이 문제입니다. 유사성 탐지를위한 임계 값을 변경할 수 있습니다 :'git merge -X find-renames = ', 예를 들어'-X find-renames = 05'는 "단지 5 % 만이라도 이름 바꾸기"를 의미합니다. – torek