2011-09-19 2 views
1

git (github에서)를 사용하고 새내기 워크 플로우 관련 질문을 시작했습니다. 묘사가 오래 되었다면 미리 사과하셔야합니다. 그러나 제가 정정 할 수 있도록 과정을 진행할 때 제가 생각하고있는 것을 설명하고 싶었습니다. 또한 Eclipse EGIT 플러그인을 사용하고 있습니다.이 플러그인은 명령 행을 사용하는 것만 큼 좋지는 않지만 결코 저를 감당하지 못할 것입니다.git eclipse 충돌을 해결하면 수정되지 않은 변경 사항도 다시 발생합니다.

내 파트너가 마스터 레포를 소유하고 개인 공동 작업자로 프로젝트가 설정되었습니다. 내가 누를 때마다, 나는 그의 레포로 직접 밀어 넣는다. 일반적으로 갈등이없는 한 우리는 커밋하고 당기고 밀 때 괜찮습니다. 충돌이있을 때마다 문제가 발생합니다. 다음은 예입니다 :

  1. 내 파트너와 나는 우리의 각각의 작업의 repos에 최신 코드를 잡아 당겨 시작. 문제 없다.
  2. FileA 및 FileB를 수정하고, 추가, 커밋 및 푸시를 모두 수행합니다. 문제 없다.
  3. 내 파트너가 FileA를 수정 한 다음 내 업데이트를 가져 오기 위해 시도합니다. 우리는 자식 bash는 땅으로 벤처와 자식 풀 실행에 더 유용한 메시지가
  4. FileA와와 체크 아웃 충돌 :

    오류 :

  5. 이클립스 그에게 오류을 제공 지역 변경 ...에 의해 작성된 병합 : FileA. 병합하기 전에 변경 사항을 커밋하거나 숨겨 둡니다.

  6. 좋습니다. 그는 변경 사항 (FileA)을 커밋하고 Eclipse를 통해 다시 시도합니다.

  7. 그는 FileA 충돌을 나타내는 메시지를받습니다. 좋아, 이것은 예상된다. 그는 이제 FileA에서 충돌을 해결하고 FileA를 추가하여 해결되었음을 나타냅니다.

  8. 이제 그는 커밋하고 푸시 할 준비가되었습니다. 그는 병합 된 FileA 변경 사항이 적용되기를 기대합니다. 그러나 지금, 다음은 내가 얻지 못하는 부분입니다. 그는 FileB를 전혀 수정하지 않았지만 Eclipse는 기본적으로 자신의 커밋에 포함되도록 결정하므로 FileB를 다시 보내지 않으려면 수동으로 선택을 취소해야하므로 FileB를 푸시하지 않아야합니다 (변경되지 않았으므로). 그러나 그렇게하더라도 FileB가 업스트림에 푸시됩니다. 결과적으로, 그는 결국 FileA뿐만 아니라 FileB도 추진하게됩니다.

나는 우리가 올바른 방식으로 일하고 있는지 여부를 알고 싶다.

+0

git에 대해 이해해야 할 핵심 포인트는 파일을 절대 푸시하지 않는다는 것입니다. 커밋 만 푸시하면됩니다. 각 커밋은 포함 된 모든 파일의 상태를 완전히 지정합니다. [julkiewicz의 대답] (http://stackoverflow.com/questions/7476796/git-eclipse-resolving-conflicts-results-in-recommitting-non-modified-changes-as-w/7477037#7477037)는 동료가 그/그녀가 강요 한 커밋에서 예상 한 내용과 다른 내용의 파일을 포함했을 수 있습니다. –

답변

0

어쩌면 포인트 6. 귀하의 코 게 글은 을 포함하는 커밋을합니다. 모두 잡아 당길 때까지 변경 한 내용입니까? 그가 commit -a과 같은 것을 많이 사용하면 이런 일이 발생할 수 있습니다. 또한 모든 파일의 모든 변경 사항을 커밋에 추가하는 것만으로 Eclipse의 기본 동작이 될 수도 있습니다. 이러한 변경 사항은 다음과 같이 사용한다, 최선을 다하고 있습니다 FileA와에 확인 만 변경하려면 두 파일 A와 B

을 포함 할 수있다 : 이클립스 세분화 된 이런 종류의 허용하는 경우

git add FileA 
git commit   # Notice, no '-a' option 

확실하지 않음 변경 사항과 커밋되지 않은 항목을 제어합니다.

관련 문제