2014-12-31 3 views
0

심각한 문제가 있습니다. 매일 약 두 번씩, 커밋시 현재 수정 된 파일이 이전 버전 인 버전을 부적절하게 작성하고 있습니다. 버그의Git이 이전 버전의 파일을 커밋하는 이유는 무엇입니까?

워크 플로우 :

  • Example.php 3 시간 동안 지속적으로 수정됩니다.
  • 17:42에 파일이 커밋되어 SHA 200a5a3으로 이동합니다.
  • 18:22에 풀 요청을 검토 한 결과, 커밋 된 파일이 이전의 (커밋 된 적이없는) 버전이라는 것을 알았습니다. [PHPStorm에 따라] 15시 34 분, 1 시간 8 분 전에 저지른.
  • 작업 카피의 파일이 정확하고 마지막 수정 타임 스탬프는 커밋 38 분 전의 2014-12-30 17:04입니다.

5시 42 분까지 변경 사항을 적용하지 않은 3시 30 분에 파일을 어떻게 '기억'할 수 있습니까? 5:04 버전에 대해서만 알고 있어야하지 않습니까?

하지만 더 중요한 것은 왜 그런 일이 일어나며 어떻게 멈출 수 있습니까?

+0

당신이 발행 한'git' 명령은 무엇입니까? '자식 '훅이 있니? 'crontab' 항목? –

+0

필자는 항상 CLI를 사용했지만이 프로젝트에서는 처음으로 GUI SourceTree를 사용하고 있습니다. –

+0

파일을 15:34에'git add '했습니까? 17:42에'git commit'을 실행 했습니까? –

답변

1

PHPStorm (및 Intellij IDE 제품군 모두)은 사용자의 소스 제어 인터페이스를 표준화하기 위해 소스 제어로 펑키 한 작업을하는 것을 좋아합니다 (버전 제어가 힘내, 의욕적 또는 서브 버전).

그런 이유로 필자의 IDE를 사용하여 내 커밋을 수행하지 않습니다. (PHPStorm은 git commit -S으로 PGP 서명 된 커밋을 지원하지 않기 때문에).

PHPStorm이 어떤 시점에서 git add <file>을 호출하고 알 수없는 이유로 인해 커밋하기 전에 다시 호출하지 못할 수 있습니다. 따라서 작업 디렉토리의 파일에서 보류중인 변경 사항이있는 동안 색인에 오래된 변경 사항이 추가됩니다 (그리고 커밋 됨).

그런 이유로, 필자는 소스 제어를 처리하기 위해 PHPStorm에 의존하지 말고 항상 CLI를 사용하는 것이 좋습니다.

+0

이 문제로 확인되었습니다. –

관련 문제