2014-10-28 5 views
2

일종의 브랜드 이름을 바꾸고 프로젝트 내부의 모든 루트 폴더 이름을 바꿉니다. Smartgit은 모든 파일을 누락되거나 추적 할 수없는 것으로 간주합니다. 내가 커밋을하면 로그에 renamed으로 표시되지만 그 중 많은 수가 표시되지 않습니다. 나는이 파일들에 대한 포크 소스와의 연결을 잃고 싶지 않다. 나는 파일 내부에서 아무것도 변경하지 않고, 내부의 모든 루트 폴더와 일부 파일의 이름을 바꿉니다.큰 이름 바꾸기 작업이 감지되지 않습니다.

총 사령관 이름 바꾸기 기능을 통해 이름 바꾸기를 수행합니다. git mv을 사용하여 수동으로 이름을 바꾸는 데 시간이 오래 걸립니다.

git이 이름 바꾸기를 감지하는 데 도움을 줄 수 있습니까?

UPDATE

나는 단지 포크 소스에 존재하지 않았다 최근에 추가 된 파일을 이름을 변경 감지하는지 알게되었습니다. UPDATE2

나는이 문제를 테스트하기 위해 2 개 클론을 만들었습니다.

  1. 커밋과 클론 2
  2. 복제 1에서 수행 이름 바꾸기를 밀어 커밋, 당겨, 하나 개의 파일을 변경.

이제 복제본 2에 rebase 충돌이 있습니다. 실제로 이름 바꾸기가 감지되었지만 충돌하는 이유는 무엇입니까? 망할 놈의 추적하지 않습니다

enter image description here

+0

그래서 할이 : 저장소에서 대량 이름 바꾸기 (복사/붙여 넣기 또는 무언가) 일부 코드를 가져, 당신의 소스와 자식 저장소를 생성, 저 지르려고 노력해라. 그게 다야? – mithrop

답변

1

커밋 시간 [1]에서 이름을 변경하지만, 항상 즉시 그들을 계산합니다. 그러므로 그것에 대해 할 수있는 일이 없습니다. 참조 :

https://stackoverflow.com/a/7941544/241453

[1] https://git.wiki.kernel.org/index.php/Git_FAQ#Why_does_Git_not_.22track.22_renames.3F

+0

중요한 것은 새 포크 커밋에서 이후에 리베이스 할 수 있는지 여부입니다. 나는 git이 포크 소스에 존재하지 않는 최근에 추가 된 파일들에 대해서만 이름 바꾸기를 감지한다는 것을 알았다. – Vlad

+0

'포크 소스'가 정확히 무엇을 의미합니까? 이름 바꾸기 감지가 예상대로 작동하지 않는 몇 가지 예를 들려 줄 수 있습니까? – mstrap

+0

github 저장소를 포크로 만들고 몇 가지 커밋을 한 후 다음 커밋에서 전체 프로젝트의 이름을 바꾸고 싶습니다. 하지만 문제는 로그에 리트 윗이 표시되지 않으면 원본 프로젝트에서 새 커밋을 가져올 때 올바르게 리베이스되지 않는다고 생각하는 것입니다. git은 새 파일과 삭제 된 파일이 있지만 이름이 변경되지 않았다고 생각하기 때문에 일부 파일이 변경되면 해당 변경 사항은 내 프로젝트에서 볼 수 없습니다. – Vlad