다음 사례를 고려하십시오.원래 이름이 알려진 이름이 바뀐 파일의 새 경로를 찾는 방법은 무엇입니까?
메인 브랜치에서 리팩터링이 수행되는 동안 로컬 브랜치에서 작업하고 있습니다. 이제 일부 파일 (클래스)의 이름이 바뀌거나 새 위치로 이동되었습니다. 병합 할 때 누락 된 클래스로 인해 많은 가져 오기 오류가 발생합니다. A
에서
--A--B--C--D--E-- (master)
\ \
F--G--H--I--J (topic)
이전 이름은 내가 F--G--H--I
에 사용 느릅 나무가있다.
B--C--D--E
에서 파일은 리팩토링되어 E
에 새 파일 이름이 생성됩니다. 체인 포함 이는 내 분기에 누락 된 리팩토링 많은 (컴파일) 오류가 J
에서
B: path/to/File.java
-> C: path/to/BetterName.java
-> D: better/package/BetterName.java
-> E: final/package/FinalName.java
같은 지금 병합 결과를 이름을 바꿉니다. 난 아직 깨진 빌드를 해결하기 위해
final.package.FinalName
대신 path.to.File
을 참조하기 때문에 (내가 이전 클래스의 새 이름을 알 필요가있다.
스크립트의 작업을 수행에 옵션
alias.history=!bash -ic 'git_file_history "[email protected]"' -
을 추가? 그렇다면 나는 당신의 질문을 얻지 못한다 – CharlesB네,하지만 위의 스크립트보다 간단한 해결책이 있는지 궁금 해서요. 나는 모든 파일을 위해 그것을해야한다. – helt
'-M' 옵션을 사용하여 이름을 찾으려면'git log' 명령을 사용해야합니다. 그런 다음 이름 바꾸기 만보고 싶으면'--diff-filter' 옵션을 사용하십시오. 내 대답에 대한 자세한 내용을 추가했습니다. –