codememo

Git: 디렉터리의 모든 파일을 다른 분기에서 복사합니다.

tipmemo 2023. 7. 13. 00:35
반응형

Git: 디렉터리의 모든 파일을 다른 분기에서 복사합니다.

디렉토리에 있는 모든 파일을 다른 분기에서 복사하려면 어떻게 해야 합니까?다음을 수행하여 해당 디렉토리에 있는 모든 파일을 나열할 수 있습니다.

git ls-tree master:dirname

그런 다음 모든 파일을 개별적으로 복사할 수 있습니다.

git checkout master -- dirname/filename

하지만, 와일드카드를 사용하는 것은 지금까지 완전히 실패했습니다.이렇게 하면 아무 것도 안 됩니다.

git checkout master -- dirname/*.png

그렇게 하려면 bash 스크립트를 사용할 수 있다고 생각하지만, 더 쉬운 방법이 있어야 합니다, 그렇죠?

트리에서 파일을 이동하려는 것이 아니므로 디렉토리만 체크아웃할 수 있습니다.

git checkout master -- dirname

경로에 공백이 없고 저처럼 특정 확장자의 파일에만 관심이 있다면,

git checkout otherBranch -- $(git ls-tree --name-only -r otherBranch | egrep '*.java')

추적하지 않고 디렉터리를 복사하는 방법

git restore --source master dirname

제 경우 원본 지점 디렉터리에서 파일을 가져오는 가장 간단한 솔루션은 다음과 같습니다.

  • origin - 원격 리포지토리 별칭(기본적으로 오리진) sourceBranchName
  • 디렉터리에 필요한 파일이 있는 분기
  • sourceBranchDirPath - 필요한 디렉토리에 대한 상대/절대 경로

파일

git checkout origin/sourceBranchName -- sourceBranchDirPath

예:

git checkout origin/validation_fix -- src/test/java/validation/

결과는 초안 모드(커밋되지 않음)에서 src/test/java/validation/상대 경로에 의해 origin/validation_fix 분기의 모든 파일이었습니다.

git checkout sourceBranchName :

sourceBranch에서 로컬 현재 분기에 이르기까지 모든 항목(루트 디렉터리)을 체크아웃할 수 있습니다.

제가 직접 테스트를 해봤습니다.Thx!

스청

언급URL : https://stackoverflow.com/questions/2668886/git-copy-all-files-in-a-directory-from-another-branch

반응형