IT박스

Git으로 파일 복사 작업 기록

itboxs 2020. 7. 1. 08:18
반응형

Git으로 파일 복사 작업 기록


git-mv를 사용하여 git에서 파일을 이동하면 상태가 파일 이름이 바뀌 었음을 보여 주며 일부 부분을 변경하더라도 여전히 거의 같은 것으로 간주됩니다 (이력을 따라갈 수 있기 때문에 좋습니다) .

파일을 복사하면 원본 파일에 몇 가지 기록이 있습니다. 새 사본과 연결하고 싶습니다.

파일 이동을 시도한 다음 원래 위치에서 다시 체크 아웃하려고했습니다. 한 번 이동하면 자식 위치로 원래 위치를 체크 아웃 할 수 없습니다.

파일 시스템 복사를 시도한 다음 파일을 추가하려고 시도했습니다-자식은 파일을 새 파일로 나열합니다.

히스토리를 원래 파일로 추적 할 수있는 파일 이름 바꾸기 / 이동을 기록하는 방법과 비슷한 방식으로 git record 파일 복사 작업을 수행하는 방법이 있습니까?


Git은 이름 변경 추적이나 복사 추적을 수행하지 않으므로 이름 변경이나 사본을 기록 하지 않습니다 . 대신 이름 바꾸기 및 복사 감지가 수행 됩니다. 당신은 이름 바꾸기에서 감지 요청할 수 있습니다 git diff(및 git show사용) -M옵션을, 당신은 사용하여 변경된 파일에 추가 복사본 탐지를 요청할 수 있습니다 -C옵션 ( -C의미를 -M), 당신은 모든 파일들 사이에서 더 비싼 복사 탐지를 요청할 수 있습니다 --find-copies-harder또는 -C -C의미있는 ( -C의미있는, -M). git-diff 맨 페이지를 참조하십시오 .

당신은 또한 구성 자식에 항상 설정하여 이름 바꾸기 감지 할 diff.renames부울 진정한 가치 (예 :에 true또는 1), 당신은으로 설정하여도 복사 감지 할 자식을 요청할 수 있습니다 copy또는 copies. git-config 맨 페이지를 참조하십시오 .

-l옵션 git diff및 관련 구성 변수 도 확인하십시오 diff.renameLimit.


git log <pathspec>Git에서 다르게 작동 한다는 점에 유의 하십시오. 여기서 <pathspec>경로 구분 기호 집합이 있습니다. 여기서 경로는 (하위) 디렉토리 이름 일 수 있습니다. 이름 변경 및 복사 감지가 시작 되기 전에 기록을 필터링하고 단순화 합니다. 이름 바꾸기 및 사본을 따르려면 git log --follow <filename>(현재 약간 제한되어 있으며 단일 파일에서만 작동합니다)를 사용하십시오.


Git이 복사 된 파일의 히스토리를 탐지하도록 강제 할 수 있습니다 :

  • 복사하는 대신 새 분기로 전환 하여 파일을 새 위치 로 이동 하십시오.
  • 원래 분기로 전환하고 파일 이름을 바꿉니다.
  • 새 파일을 원래 지점으로 병합하여 두 파일을 모두 유지하여 사소한 충돌을 해결하십시오.
  • 별도의 커밋으로 원래 파일 이름을 복원하십시오.

(솔루션은 https://stackoverflow.com/a/44036771/1389680 에서 가져 왔습니다 .)

참고 URL : https://stackoverflow.com/questions/1043388/record-file-copy-operation-with-git

반응형