그래서 저는 우리 파일 중 하나에 패치를 작성하고 있었으며 거기에 없어야하는 코드를 보았습니다. (이 불법 코드로 인해 웹 페이지에 오류가 발생했습니다.) 코드는 몇 달 전에 패치에 추가 된 다음 약 1 개월 전에 커밋을 취소하여 삭제되었습니다. 그래서 정말로 거기에 있지 않아야합니다.git : 삭제 된 코드가 신비하게 다시 나타났습니다
- 자식 비난 : 그것은 어디에서 온 내가 추적하는 몇 가지 방법을 시도 이상하게 나를 되돌리기는 결코 일어나지 않았다 것처럼 즉, 코드를 추가 투입 원래의 태그와 커밋 메시지를 보여 주었다 .
- git log - filename : 되돌리기를 포함하여 거기에있을 것으로 예상되는 모든 커밋을 표시했지만 다시 나타나야한다고 제안한 후에는 아무 것도 표시하지 않습니다.
- 수동 검사 패치 (bisect) : 되돌리기 직후 커밋에 코드가 다시 나타 났지만 패치를 체크 아웃하면 로그가 완전히 다르고 되돌리기 기능이 없습니다.
이 마지막 관찰은 문제의 패치가 병합 된 병합 이었지만 커밋 메시지에는 병합에 대한 언급이 없으며 우리 팀은 보통 git이 생성하는 병합 메시지를 유지한다고 결론 내릴 수 있습니다.
그렇다면 어떻게 될까요? 충돌 해결 중에 잘못된 선택을함으로써 코드가 다시 도입 되었습니까? 그렇다면, 이런 종류의 것을 찾는 더 빠른 방법이 있습니까? 예를 들어, git의 비난은 코드가 원래 패치에서 나온 것이라고 말했습니다. 하지만 패치 X에서 되돌리기가 시작되었다고 직접 알려주는 방법이 있습니까? git은 병합 중에 영향을 받는지 여부를 모르는 경우 각 코드 부분의 위치를 어떻게 추적합니까? 병합 충돌시 누군가가 코드 조각을 엉망으로 만들었다 고 말할 수 있습니까? 병합 자체가 비난에 나타나야한다고 생각했습니다.
커밋과 되돌리기 사이에 한 달이 있다면, 커밋 범위에서 분기했지만 분기 된 분기 수는 몇 개입니까? 되 돌린 후에? 'git log --merges .. '와 같은 것을 시도해보십시오. 또한 병합 직후에 커밋이 병합 커밋을 가리킨 것입니까? –