OS 기본 명령 또는 GUI를 사용하여 일부 파일을 이동할 때 git은 트랙을 잃고 생각 파일이 삭제되고 새 파일이 만들어집니다! git mv
명령을 사용하여 작동합니다. 그러나 그것은 폴더 또는 와일드 카드 이동을 지원하지 않습니다 (그럴까요?)누락 된 파일 기록없이 폴더 다시 구성
기록을 놓치지 않고 파일 및 폴더를 재구성하는 가장 좋은 방법은 무엇입니까?
OS 기본 명령 또는 GUI를 사용하여 일부 파일을 이동할 때 git은 트랙을 잃고 생각 파일이 삭제되고 새 파일이 만들어집니다! git mv
명령을 사용하여 작동합니다. 그러나 그것은 폴더 또는 와일드 카드 이동을 지원하지 않습니다 (그럴까요?)누락 된 파일 기록없이 폴더 다시 구성
기록을 놓치지 않고 파일 및 폴더를 재구성하는 가장 좋은 방법은 무엇입니까?
Git by design은 파일 이름을 기록하지 않고 런타임에 파일 기록을 계산합니다. 이것은 파일/폴더를 재구성하는 "최선의 방법"과 같은 것이 없다는 결과를 가져옵니다. 그러나 Git은 파일의 내용을 비교하여 이름을 결정하기 때문에 파일 및을 내용을 수정하려는 경우 파일 이름 바꾸기와 다른 커밋 만 포함하는 하나의 커밋을 사용하는 것이 좋습니다 콘텐츠 수정.
Git이 이름 바꾸기를 계산하는 방법과 관련된 플래그는 git log
인 -C
및 -M
옵션을 참조하십시오.
git의 프로토콜로 인해, 우리가 파일을 옮기기 전에 git commit
은 약간의 영향을줍니다. 커밋은 사실 모든 파일의 스냅 샷이며 이전 커밋과 다른 점은 없습니다.
이것은 실제로 "추적"할 수는 없지만 파일 이동을 "복구"해야 함을 의미합니다.
일부 git 명령 (GUI 일 수도 있음)은 실제로이를 잘 수행합니다. 이것은 이동을 포함하여 파일 변경을 나열하는 데 사용하는 git 명령입니다.
$ git log --follow -- [FILES]