GIT 문서를 읽었지 만 최신 버전의 코드를 다른 디렉토리에 복사 (또는 배포)하는 방법을 알 수 없습니다. 물론 단순히 copy -r code /path/to/another/dir
일 수도 있지만 GIT에서 만든 다른 모든 파일을 복사합니다. 그리고 나는 그것을 필요로하지 않는다. 그래서 숨겨진 파일이나 원본 파일의 복사본이없는 원시 파일을 복사하는 간단한 방법이 있습니까?GIT - 최신 디렉토리를 다른 디렉토리에 복사하십시오.
답변
이 그것을 할 수있는 한 가지 방법은 다음과 같습니다 여기에 유닉스 cp
와 예입니다. 파일을 표준 출력으로 아카이브하기 위해 덤프합니다. 여기에서는 명령을 약간 뒤집습니다. 리디렉션하는 대신 지정된 디렉터리에 즉시 추출합니다. 대상 디렉토리가 먼저 작성되어야합니다.
즉, 프로젝트를 배포 할 때이 기능이 필요할 것으로 보입니다. 개인적으로 Git 자체를 사용하여 프로젝트를 배포합니다. 그렇게하면 Git 명령을 사용하여 쉽게 업그레이드하고 롤백 할 수 있습니다. 물론, .git
디렉토리는 배포 디렉토리에 존재하지만, 단순히 복사해도 저장소에서 제거 된 파일은 삭제되지 않으며 대상에 남아 있습니다.
마지막으로 내 개인 즐겨 찾기에 관심이있을 수 있습니다 : using a post-receive hook to deploy projects remotely.
옵션 1 : 당신이 당신의 힘내의 repo에 대한 표준 설정을 가지고 가정 .git 디렉토리
제외, 당신은 당신의 프로젝트의 루트에 모든 것을 복사,하지만 .git
하위 디렉토리를 제외 할 수있다.
분명히이 with a bash terminal using rsync
을 수행 할 수 있습니다
rsync -av --exclude='.git' source destination
하지만 난 당신이 윈도우 copy
함께 할 수있는 방법을 모르겠어요.
옵션 2 : 자식 아카이브 수출
또 다른 옵션은 git archive
을 사용하는 것입니다
git archive --format zip --output "output.zip" master -0
은 (-0
비 압축에 대한 플래그입니다) 당신에게 압축 아카이브를 제공 할 것입니다. 이 문제는 아카이브에서 파일을 추출해야한다는 것입니다.
bash 쉘 또는 Cygwin과 같은 유닉스 도구에 액세스 할 수있는 경우 janos's answer에서 이러한 Unix 도구를 사용할 수도 있습니다. How to do a “git export” (like “svn export”)을 참조하십시오.
# 옵션 3 : 이눔 LS-파일
cp
에 인수를 전달 해요 때문에 하나 실제로하는 데 문제가 (대신 소스의 대상 디렉토리와 같은 파일)
편집 , 지금은 이것을 긁어 라.
또 다른 옵션은 힘내가 작업 복사본에서 추적하는 모든 파일의 목록을 얻은 다음 복사 명령에 인수로 전달하는 것입니다.
mkdir /path/to/target/dir
git archive master | tar x -C /path/to/target/dir
git archive
명령은 저장소의 내용에서 아카이브 파일을 생성하는 일반적입니다 :
git ls-files | xargs cp <destination-root>
'rsync -av --exclude = '.git'source destination' 명령으로 시도했지만'~'으로 끝나는 파일을 여전히 복사합니다.'~'로 끝나는 파일을 제외 할 수 있습니까? ? – Andrius
@Cupcake 나는 당신이'... | xargs -I {} cp {} DEST' 거기에 – janos
@Andrius 당신은 여러 개의'--exclude' 플래그를 추가 할 수 있습니다 :'rsync -av --exclude = '. git'--exclude = '* ~'source destination ' – janos
- 1. 최신 파일을 ssh를 통해 다른 디렉토리에 복사하십시오.
- 2. 일단 이클립스에 저장되면 프로젝트를 다른 디렉토리에 복사하십시오.
- 3. git-diff 다른 디렉토리에
- 4. clojure : 디렉토리의 내용을 다른 디렉토리에 복사하십시오.
- 5. NSIS를 사용하여 디렉토리를 복사하십시오.
- 6. 파이썬을 사용하여 파일을 디렉토리에 복사하십시오.
- 7. 한 파일에서 다른 파일로 git diff를 복사하십시오.
- 8. 현재 경로에있는 디렉토리를 bash에서 다른 이름으로 동일한 경로에 복사하십시오.
- 9. untar filename.tr.gz를 "filename"디렉토리에 복사하십시오.
- 10. 디렉토리 파일을 현재 디렉토리에 복사하십시오.
- 11. 귀를 로컬 디렉토리에 복사하고 복사하십시오.
- 12. 배치 스크립트를 사용하여 파일이있는 디렉토리를 찾으려면 해당 디렉토리와 하위 디렉토리에있는 모든 파일을 다른 디렉토리에 복사하십시오.
- 13. Amazon S3 디렉토리를 다른 디렉토리에 복사
- 14. 서브 디렉토리에 .git 디렉토리를 git에 추가 할 수 있습니까?
- 15. Git-git gitignore 디렉토리에 추가
- 16. 다른 디렉토리에 .git 폴더가있는 방법이 있습니까?
- 17. git 저장소를 bitbuckets의 프로덕션으로 복사하십시오.
- 18. git 로컬 디렉토리를 제거한 후에도 "이미 최신"상태입니다.
- 19. 리모컨을 git 프로젝트의 로컬 하위 디렉토리에 병합하십시오.
- 20. git 다른 메인 저장소에 하위 디렉토리를 푸시
- 21. 일괄 스크립팅 : 10 개의 최신 파일을 다른 폴더에 복사하십시오.
- 22. XCode 빌드 디렉토리에 대한 Git Ignore 패턴
- 23. 다른 디렉토리에 자식 원격 추가
- 24. .htaccess 다른 도메인의 다른 하위 디렉토리에 하위 디렉토리를 다시 작성하십시오.
- 25. 배치 스크립트 : 비어있는 디렉토리의 최신 폴더를 복사하십시오.
- 26. 원격 컴퓨터의/etc/systemd/디렉토리에 파일을 복사하십시오.
- 27. webpack의 dist 디렉토리에 설정 파일을 복사하십시오.
- 28. VS가 자동으로 DLL을 실행 출력 디렉토리에 복사하십시오.
- 29. NSFileManager NSURL을 응용 프로그램 문서 디렉토리에 복사하십시오.
- 30. 하나의 디렉토리에 여러 개의 Git 리포지토리가 있습니다.
bash 쉘 또는 Cygwin 같은 유닉스 툴을 사용할 수 있습니까? –
"[git export"("svn export"와 같은 방법)]의 복제본으로 간주 할 수 있습니다. (http://stackoverflow.com/questions/160608/how-to-do-a-git- export-like-svn-export). –