두 개의 리포지토리가 있습니다. 둘 다 읽기/쓰기가 가능합니다. (대개 하나는 코드하지만 다른 코드도 코딩합니다.) 내 작업 흐름은 일반적으로 로컬 레포에서 작업하고, 변경 사항을 테스트 할 준비가되면 프로젝트를 실제로 빌드하는 다른 원격 저장소로 커밋을 푸시합니다. 그러나 어떤 이유로 로컬 저장소에서 원격 저장소로 푸시 할 때 저장소가 변경되면 즉, 저장소가 업데이트되지만 변경 사항의 역인 경우 (예 : 원격 저장소를 해당 저장소로 다시 가져 오는 변경 사항) 프리 - 푸쉬 상태)가 인덱스에 등록된다. 예를 들어 원격 git repo로 이동하면 인덱스에 오래된 트리가 유지됩니다.
, 나는 내가 로컬// This is a comment that has been updated
말을 업데이트 한 다음 내 원격의 repo에 푸시 한 코멘트
// This is a comment
을 가진 파일을 가지고 있다고, 나는 내 원격의 repo에서 다음을 얻을 :
remote_repo$ git diff --cached
-// This is a comment that has been updated
+// This is a comment
분명히 git reset --hard
을 실행하여 같은 상태로 가져올 수는 있지만이를 수행하거나 자동화하는 다른 방법이 있습니까? 나는 대부분의 사람들이 git reset --hard
을 실행하는 포스트 수신 훅을 추가 할 것을 제안 할 것이라고 기대하지만, 이것은 깨끗한 방법으로 구성 가능할 것으로 기대된다.
사이드 노트 :이 시점에서 인덱스의 내용은 푸시되기 전의 인덱스 *에 있던 것이 전부입니다. 그것이 문제의 근원입니다 : 인덱스는'HEAD' 커밋이었던 것과 일치하지만,'HEAD' 자체는 어떤 식 으로든 변경되었으며 이제는 새로운 커밋을 해결합니다. 하드 리셋이 필요하지 않습니다 (혼합 리셋만으로 충분합니다). 그러나 일반적으로 이것은 약간의 함정입니다. – torek
도회, 그것은 회고 적으로 의미가 있습니다. 나는 그것이 어색한 작업 흐름이라는 것을 알고 있지만, 나는 repo를 소유하고 있으며 어느 누구도 액세스하지 못하므로 위험은 정말 불편합니다. – DIMMSum