Notice
Recent Posts
Recent Comments
Link
관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] Xcode에서 깃 히스토리를 유지하면서 파일 이동 방법 (git history 보관, 파일 이동, 그룹 이동, git move, git mv) 본문

iOS 응용 (swift)

[iOS - swift] Xcode에서 깃 히스토리를 유지하면서 파일 이동 방법 (git history 보관, 파일 이동, 그룹 이동, git move, git mv)

jake-kim 2023. 6. 14. 01:24

파일 이동 방법

  • Xcode 에서 보통 파일을 이동 시킬때 파일을 마우스로 클릭하고 드래그앤 드롭으로 파일을 이동시키는데, 이렇게 이동시키게 되면 git history가 파일 이동으로 덮어씌워지는 현상이 발생
  • 그룹 통째로 이동시키게 되면 file copy가 아닌 file reference가 복사되는 경우가 발생
  • git mv를 활용하여 파일을 이동시키면 깃 히스토리도 유지되고 file reference가 복사되지 않으므로 이 방법을 사용을 권장

git mv 명령어

  • git mv [이동시킬 파일] [이동될위치]
% git mv
usage: git mv [<options>] <source>... <destination>

    -v, --verbose         be verbose
    -n, --dry-run         dry run
    -f, --force           force move/rename even if target exists
    -k                    skip move/rename errors
    --sparse              allow updating entries outside of the sparse-checkout cone

ex) Views 폴더 통째로 Apps 하위로 이동시키고 싶은 경우

  • 경로를 쉽게 알기 위해서 Views을 클릭 > 오른쪽 indicator를 열고 Full Path에서 Views 경로를 확인

/Users/jake/Desktop/ExGitMove/ExGitMove/Views
  • 이동될 위치인 Apps 폴더를 선택하고 마찬가지로 경로를 확인

/Users/jake/Desktop/ExGitMove/ExGitMove/Apps/
  • git mv를 통해 이동
git mv /Users/jake/Desktop/ExGitMove/ExGitMove/Views /Users/jake/Desktop/ExGitMove/ExGitMove/Apps/
before after
  • 파일들은 이동 되었지만 Xcode에서 reference 설정만 안되었으므로 따로 reference 설정 필요
    • Add Files to "ExGitMove" 선택

  • Create groups 선택하여 이동시켰던 폴더를 선택

  • 이동시켜서 빨간색으로 표시되었던 폴더도 삭제

(완료)

* 전체 코드: https://github.com/JK0369/ExGitMove

* 참고

https://git-scm.com/docs/git-mv

Comments