2014-03-27 4 views
1

나는 시각적 인 스튜디오 프로젝트를 가지고있다. 최근에 내 프로젝트를 리펙토링하므로 코드가 수정되지 않고 방금 이동 한 함수가있다. 하지만 내 git extensions (Visual Studio plugin for git) 보고서 라인은 한 곳에서 삭제되어 다른 곳에서 삽입됩니다.내 코드 리팩터링이 자식으로 이해할 수 없다

왜 그런가? git에게 변경 사항이 없다는 것을 알리는 방법이 있습니까? 왜냐하면 다른 개발자가 히스토리를 보았을 때 그를 혼란스럽게 할 수 있기 때문입니다.

+9

혼란 스럽습니다. 리팩토링 **은 ** 코드 수정이므로 리비전 제어 **는 반드시 **이를 참조해야합니다. 그렇지 않은 경우 다른 사람들이 어떻게 이러한 파일을 계속 변경할 수 있습니까? 개정 컨트롤은 파일의 내용을 추적하며 그 밖의 것은 없습니다. 사용자가 볼 수있는 것을 내부 변경과 구별하지 않으므로이를 사용하지 마십시오. –

+0

어떻게 그 선들이 움직이는 줄 상상합니까? – andy256

+0

일부 변경 관리 시스템은 이러한 종류의 수정을 '이 코드 블록 이동'으로 추적 할 수 있습니다. –

답변

2

코드 리팩토링은 코드 수정의 일부입니다. 파일 내용이 변경 될 때 git이이를 건너 뛸 방법이 없습니다.

다른 개발자가 혼동하지 않도록 코드 리팩터링 커밋을 기능 변경과 분리해야합니다.

+0

새 지점을 만드나요? – Nest

+3

이것은 git의 '제한 사항'입니다. 힘내는 ** git mv **를 사용하여 파일을 이동하는 한 파일의 움직임을 처리 할 수 ​​있지만, 내 지식으로는 잘 해결되지 않는 자식은 한 파일에서 다른 파일로의 '코드 블록 이동'(또는 심지어 같은 파일 주위에 –

+0

git commit 주석을 사용하여 수행 된 작업을 설명 할 수 있습니다. "리펙토링 만". 리팩토링 전후로 테스트가 통과되면, 당신은 좋습니다. –

관련 문제