2011-05-01 3 views
1

EGit을 사용하는 개발자가 2 명 있습니다.egit을 사용하여 중앙 자식 저장소로 푸시/풀한 후 트리가 충돌하지 않습니다.

  • 처음에 중앙 (베어) 저장소
  • 가 각 개발자가에서 체크 아웃합니다 하나 하나는 리눅스

    에서 작동 그리고 우리는 다음과 같은 협업을위한 정책을 설정, 윈도우에서 작동 중앙 저장소 및 작업 로컬.

  • 두 사람이 작업을 동기화해야하는 경우 중앙 저장소에서 끌어 오기/푸시합니다.

우리는 중앙 저장소를 사용하여 향후 더 많은 개발자와 손쉽게 공동 작업 할 수 있다고 생각합니다.

한 개발자가 다른 디렉터리로 다른 디렉터리로 이동 한 파일을 수정했을 때 충돌이 전혀 없음을 감지 할 때까지 모든 것이 잘 작동합니다. 다음은 단계입니다.

  • 한 명의 개발자가 파일을 다른 위치로 이동하십시오. 자신의 로컬 저장소에 커밋하십시오. 중앙 저장소로 밀어 넣으십시오.
  • 다른 하나는 해당 (동일한) 파일의 내용을 변경합니다. 로컬 저장소에 커밋하십시오. 중앙 저장소를 당겨.

두 번째 개발자가 "끌어 오기"를 수행 할 때 충돌 보고서가 발생할 것으로 예상됩니다. 그러나 충돌은 없습니다. 그리고이 개 파일은 자신의 작업 디렉토리에 표시 (자신의 로컬 저장소에)있다 :

  • 한 그는
  • 그리고 최초의 개발자가 다른 디렉토리로 이동 한 하나를 수정했습니다.

누구에게 우리의 실수를 말할 수 있습니까?

Google의 작업 방식이 git의 디자인을 위반합니까?

우리는 git를 처음 사용합니다 (오랫동안 CVCS에 익숙했습니다). 이 문제를 해결하면 우리 팀의 작업을 병합하는 것이 매우 어려울 것이라는 점에서 매우 걱정됩니다. 우리는 잘못을해야한다고 생각합니다. 우리를 명확히 해 주셔서 감사합니다.

답변

0

내 생각 엔 파일을 이동하지 않았기 때문입니다. 파일을 이동하면 파일이 삭제되고 생성됩니다. 사람들이 변경 사항을 추가 할 때 대개 새 파일, 추적 된 파일뿐만 아니라 삭제 된 파일을 포함하도록 -u 또는 -A 옵션을 추가하는 것을 잊어 버립니다.

파일을 이동 한 후에 변경 사항의 제거면을 준비해야합니다. 의심 스럽다면 git log --stat 명령으로 이동을하는 커밋의 이전 위치에서 파일을 제거했는지 확인하십시오.

희망이 있습니다.

0

저는 Egit을 사용하기 때문에 명령 행이 없습니다. 커밋 할 때 삭제 된 파일과 추가 된 파일을 모두 확인했는지 확인합니다.

그러나 이상하게도, 나는 다시 시도 :

  • 내 로컬 저장소를 삭제 중심의 repo (복제)
  • 에서 다시
  • 체크 아웃을 (저장소보기에서 마우스 오른쪽 ... 삭제 클릭) 그리고 정확히 내가 위에서 언급 한 단계를 다시 실행

모든 것이 예상대로 작동합니다. Team> Pull을 만들 수 있으므로 이전 로컬 저장소에 문제가 있어야합니다. Fetch then Merge를해야합니다. 위와 같이 다시 확인한 후. 이제 괜찮아.

관련 문제