자식이 내가 이름을 변경했다고 생각하는 것을 어떻게 막을 수 있습니까?
두 개의 파일 index.html과 template.html. 나는 대부분을 index.html로 옮겼고 template.html이제 git은 두 파일을 모두 추가 할 때 이름을 변경했다고 생각합니다. 특정 경우에이를 방지 할 수 있습니까?
"허용 된"답변이 있지만 질문에 답변하는 방법에 대한 힌트는 제공하지 않습니다.
git-log (1) 및 git-diff (1)의 정답은 다음과 같습니다.
--no-renames
Turn off rename detection, even when the configuration
file gives the default to do so.
Git이 파일이 복사본이라고 생각하는 이유
Git은 파일 이름이 아닌 콘텐츠를 추적 합니다 . 결과적으로 두 파일의 내용이 상당히 유사하면 git은 파일을 복사하거나 이름을 바꾼 것으로 간주합니다. git-log (1)을 읽으면 다음을 배울 수 있습니다.
유사성 지수는 변경되지 않은 라인의 비율이고, 비 유사성 지수는 변경된 라인의 비율입니다. 내림 한 정수와 퍼센트 기호가 뒤 따릅니다. 따라서 100 %의 유사성 인덱스 값은 두 개의 동일한 파일에 대해 예약되어있는 반면 100 % 비 유사성은 이전 파일의 행이 새 파일로 만들어지지 않았 음을 의미합니다.
따라서 유사성 지수가 100 %라고 가정하면 git은 이것이 사본이라고 생각할 것입니다. 가장 좋은 방법은 git이 옳은 일을하고 있다고 생각하지 않는다면 무슨 일이 일어나는지 설명하기 위해 합리적인 로그 메시지 나 메모를 추가하는 것입니다 (자세한 내용은 git-notes (1) 참조).
유사성 지수 조정
복사 나 이름 바꾸기를 고려하기 위해 git이 사용하는 값을 조정 해 볼 수도 있습니다. git-log (1) 매뉴얼은 다음과 같이 말합니다.
-M[<n>], --find-renames[=<n>]
If generating diffs, detect and report renames for each commit. For
following files across renames while traversing history, see --follow. If
n is specified, it is a threshold on the similarity index (i.e. amount
of addition/deletions compared to the file’s size). For example, -M90%
means git should consider a delete/add pair to be a rename if more than
90% of the file hasn’t changed.
-C[<n>], --find-copies[=<n>]
Detect copies as well as renames. See also --find-copies-harder.
If n is specified, it has the same meaning as for -M<n>.
다시 말하지만, 파일이 대부분 유사한 경우에는 도움이되지 않지만 이러한 값을 사용하여 복사본 또는 이름 변경으로 간주되기 위해 얼마나 유사한 지 조정할 수 있습니다. 귀하의 마일리지가 다를 수 있습니다.
만약 당신이 커밋 직전에 있고 "git가 화가났다는 기분이 안 좋다"면, 이름을 바꾼 모호한 파일 git의 추가를 취소하고 커밋을 수행 한 다음 모호한 파일을 다시 추가하고 커밋합니다.
git reset ambiguous_file_git_thought_you_renamed
git commit
git add ambiguous_file_git_thought_you_renamed
git commit
이것은 나를 위해 일했습니다.
이름이 변경되지 않았는지 다시 확인하십시오.
git diff --name-status -C HEAD^^ HEAD
M ambiguous_file_git_thought_you_renamed
M original_file
시작 부분의 "M"은 수정됨을 의미하고 "R"은 이름 변경됨을 의미합니다. 여기에는 Renamed가 없습니다.
"하나"커밋에서 이름 바꾸기라고 생각하는 git을 피하려면.
- 잘못된 이름 변경을 트리거하지 않는 변경 사항을 준비하고 커밋합니다.
- git이 이름을 바꾸고 커밋했다고 생각하게 만든 나머지 파일을 준비합니다.
git commit --amend
참고URL : https://stackoverflow.com/questions/15031576/how-can-i-prevent-git-from-thinking-i-did-a-rename
'IT박스' 카테고리의 다른 글
| "정적 컨텍스트에서 비 정적 메서드를 참조 할 수 없습니다."오류 (0) | 2020.11.12 |
|---|---|
| 모의 패치를 사용하여 인스턴스 메서드 모의 (0) | 2020.11.12 |
| 하나의 메이븐 프로필이 다른 프로필을 활성화하도록 할 수 있습니까? (0) | 2020.11.12 |
| 런타임에 Java 주석 추가 (0) | 2020.11.12 |
| C는 C ++보다 훨씬 빠릅니다. (0) | 2020.11.12 |